KR20220135443A - APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME - Google Patents

APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME Download PDF

Info

Publication number
KR20220135443A
KR20220135443A KR1020210041113A KR20210041113A KR20220135443A KR 20220135443 A KR20220135443 A KR 20220135443A KR 1020210041113 A KR1020210041113 A KR 1020210041113A KR 20210041113 A KR20210041113 A KR 20210041113A KR 20220135443 A KR20220135443 A KR 20220135443A
Authority
KR
South Korea
Prior art keywords
core
gui component
gui
energy consumption
processing thread
Prior art date
Application number
KR1020210041113A
Other languages
Korean (ko)
Other versions
KR102630955B1 (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 KR1020210041113A priority Critical patent/KR102630955B1/en
Publication of KR20220135443A publication Critical patent/KR20220135443A/en
Application granted granted Critical
Publication of KR102630955B1 publication Critical patent/KR102630955B1/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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

The present invention relates to an apparatus and method for optimizing the energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on user experience and to an apparatus and method for optimizing the energy consumption of a smart mobile terminal and reducing the response time of a GUI component at the same time by effectively allocating a plurality of threads related to the GUI component to a big core or little core by utilizing the user experience of the GUI component in a GUI environment of the smart mobile terminal using a multi-core structure consisting of a big core with high power consumption and high processing speed and a little core with low power consumption and low processing speed.

Description

사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법{APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME}Apparatus and method for optimizing energy consumption of smart mobile terminals of big.LITTLE multi-core structure based on user experience

본 발명은 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 전력소모가 크고 처리속도가 빠른 빅코어(big core)와 전력소모가 낮고 처리속도가 느린 리틀코어(LITTLE core)로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말의 GUI 환경에서, GUI 컴포넌트에 대한 사용자 경험을 활용하여 상기 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 효율적으로 할당함으로써 스마트 모바일 단말의 에너지 소비를 최적화함과 동시에 상기 GUI 컴포넌트의 응답시간을 줄일 수 있도록 하는 장치 및 그 방법에 관한 것이다.The present invention relates to an apparatus and method for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on user experience, and more particularly, to a big core with high power consumption and high processing speed and power In the GUI environment of a smart mobile terminal using a multi-core structure composed of a LITTLE core with low consumption and a slow processing speed, a plurality of threads related to the GUI component can be configured as a big core or Disclosed are an apparatus and method for optimizing energy consumption of a smart mobile terminal and reducing response time of the GUI component by efficiently allocating to little cores.

최근 산업기술과 정보통신기술의 급속한 발전으로 인해 하드웨어의 직접도와 병렬성이 높아짐에 따라 스마트폰과 같은 스마트 모바일 단말의 하드웨어 성능이 하루가 다르게 강력해지고 있다. 특히, 작업 처리량의 증가와 다양한 작업을 동시에 처리하려는 사용자의 요구가 커짐에 따라 스마트 모바일 단말에서도 멀티코어 구조가 필수적으로 탑재되고 있다.Recently, with the rapid development of industrial technology and information and communication technology, the hardware performance of smart mobile terminals such as smartphones is getting stronger day by day as the degree of directivity and parallelism of hardware increases. In particular, as the work throughput increases and the user's demand to simultaneously process various tasks increases, a multi-core structure is essential in smart mobile terminals as well.

그러나 하드웨어의 직접도와 병렬성이 높아짐에 따른 하드웨어 구조의 복잡성 증가와 증복도 심화는 스마트 모바일 단말에서 에너지 소비의 급증을 야기한다.However, the increase in the complexity of the hardware structure and the deepening of the redundancy due to the increase in the degree of directivity and parallelism of the hardware causes a rapid increase in energy consumption in smart mobile terminals.

특히, 배터리에 크게 의존하는 스마트 모바일 단말의 경우, 새롭게 개발되는 하드웨어 칩의 전력소모량은 급격하게 증가하고 있으나 배터리 기술의 발전은 이에 부합하고 있지 못해 어느 때 보다도 스마트 모바일 단말에서의 에너지에 효율적인 하드웨어 운영 기법이 요구되고 있다.In particular, in the case of smart mobile terminals, which are highly dependent on batteries, the power consumption of newly developed hardware chips is rapidly increasing, but the development of battery technology does not match this, so energy-efficient hardware operation in smart mobile terminals more than ever. technique is required.

이에 따라 최근에는 스마트 모바일 단말의 에너지 효율성을 높이기 위해 비대칭 멀티코어 구조가 제안되었으며, 현재 널리 사용되고 있는 비대칭 멀티코어 구조는 big.LITTLE 멀티코어 구조이다. 상기 big.LITTLE 멀티코어 구조는 처리속도가 빠르지만 에너지 소모량이 높은 빅(big)코어와, 에너지 소모량이 낮으나 처리속도가 상기 빅코어 보다 상대적으로 늦은 리틀(LITTLE)코어로 구성된다.Accordingly, recently, an asymmetric multi-core structure has been proposed to increase the energy efficiency of smart mobile terminals, and the asymmetric multi-core structure currently widely used is the big.LITTLE multi-core structure. The big.LITTLE multi-core structure includes a big core with high processing speed but high energy consumption, and a little core with low energy consumption but relatively slower processing speed than the big core.

그러나 big.LITTLE 멀티코어 구조의 스마트 모바일 단말에서 에너지 효율이 높은 리틀코어의 활용도가 떨어지는 문제점이 있다. 이러한 문제점을 해결하기 위해 최근에는 응용프로그램 단계에서 멀티코어 할당에 참여하는 저전력 멀티코어 운영 방법에 대한 연구들이 활발하게 진행되고 있다.However, there is a problem in that the utilization of the energy-efficient little core in the smart mobile terminal of the big.LITTLE multi-core structure is low. In order to solve this problem, recently, studies on a low-power multi-core operation method participating in multi-core allocation in the application program stage are being actively conducted.

한편, 현재 스마트 모바일 단말을 위한 안드로이드 플랫폼의 경우, 리눅스 운영체제 위에 네이티브(native) 라이브러리 스택과 안드로이드 런타임이 탑재되고, 그 위에 응용프로그램 프레임워크가 올라가며, 그 위에 비로소 응용프로그램 소프트웨어들이 구동되는 매우 복잡한 계층구조를 가진다. 이러한 복합한 계층구조에서는 소프트웨어 실행 시 다수의 내부적 시스템 콜의 호출이 수반되어야 하므로, 이에 따른 추가적인 에너지 소비가 발생한다.On the other hand, in the case of the current Android platform for smart mobile terminals, a native library stack and Android runtime are mounted on the Linux operating system, an application framework is placed on it, and application software is only driven on it. have a structure In such a complex hierarchical structure, since the invocation of a number of internal system calls must be accompanied when the software is executed, additional energy consumption occurs accordingly.

또한 사용자와의 인터페이스 역할을 수행하는 GUI 처리 스레드(혹은 태스크)들의 경우, 사용자의 입력 성향 등과 같은 사용자 경험(user experience, UX)에 의한 에너지 소모도의 차이가 필연적으로 발생한다. 특히 사용자의 조작에 따라 애플리케이션 구동 중 화면 갱신이 발생할 경우 에너지 소모가 증가될 수 있으며, 화면의 색이나 패턴 혹은 배열에 따라서도 에너지 소모량이 달라질 수 있다.Also, in the case of GUI processing threads (or tasks) serving as an interface with a user, a difference in energy consumption due to user experience (UX) such as a user's input tendency inevitably occurs. In particular, when a screen update occurs while an application is running according to a user's manipulation, energy consumption may increase, and energy consumption may vary depending on the color, pattern, or arrangement of the screen.

특히 스마트 모바일 단말에서, 가장 널리 사용되는 안드로이드 플랫폼은 사용자 만족도를 높이기 위해 응용프로그램의 GUI 컴포넌트(위젯)와 관련한 스레드들에 대한 우선순위를 높게 설정하는 데, 이 경우 big.LITTLE 구조에서 항상 빅코어에 우선적으로 할당되는 현상이 발생한다. 그러나 일반적으로 응용프로그램은 구동 중 상당부분의 시간은 사용자의 입력이 있을 때까지 idle상태에 있는 것이 대부분이다. 따라서 빅코어에 상기 스레드들을 계속적으로 할당하는 것은 사용자 입력이 있을 때 까지 해당 프로세서(빅코어)를 지속적으로 점유하면서 에너지 소모를 유발하기 때문에 에너지 효율성이 떨어지는 문제점이 있다.In particular, in smart mobile terminals, the most widely used Android platform sets a high priority for threads related to GUI components (widgets) of applications to increase user satisfaction. There is a phenomenon in which priority is assigned to However, in general, most of the application program is in the idle state until there is user input for most of the time during operation. Therefore, the continuous allocating of the threads to the big core causes energy consumption while continuously occupying the corresponding processor (big core) until there is a user input, so there is a problem in that energy efficiency is lowered.

또한 안드로이드 플랫폼을 기준으로 각 응용프로그램의 화면은 하나의 액티비티(activity)로 구성되어 있으며, 액티비티에는 사용자의 입력과 화면출력을 동시에 담당하는 적어도 하나 이상의 GUI 컴포넌트(위젯)가 포함된다. 또한 상기 안드로이드 플랫폼은 상기 GUI 컴포넌트에 사용자에 의한 입력 이벤트가 발생하면, 개발자가 미리 정의해 놓은 후속작업들을 이벤트 핸들러를 통해 구동시킨다. 이 경우 안드로이드 플랫폼은 사용자 만족도를 위해 GUI 컴포넌트 구동을 위한 GUI 처리 스레드를 높은 우선순위를 가지도록 하여 빅코어에 우선적으로 할당한다. 이러한 경우 해당 액티비티가 스마트 모바일 단말의 포그라운드(foreground)에 위치하는 한, 지속적으로 에너지 소모량이 높은 빅코어를 계속 점유하며 에너지를 과도하게 소비하는 문제점이 발생할 수 있다.Also, based on the Android platform, the screen of each application consists of one activity, and the activity includes at least one GUI component (widget) that simultaneously handles user input and screen output. In addition, when an input event by a user occurs in the GUI component, the Android platform drives subsequent tasks predefined by the developer through an event handler. In this case, the Android platform prioritizes the GUI processing thread for driving the GUI component to have a high priority for user satisfaction and assigns it to the big core. In this case, as long as the corresponding activity is located in the foreground of the smart mobile terminal, a problem of excessively consuming energy may occur while continuously occupying a big core with high energy consumption.

또한 GUI 컴포넌트에서 입력 이벤트를 처리하여 이벤트 핸들러로 넘기는 작업보다 이벤트의 후속작업을 수행하는 프로시져(procedure)들의 작업내용과 작업시간이 상대적으로 크다. 그러나 안드로이드 플랫폼은 이러한 프로시져들을 담당하는 이벤트 처리 스레드들은 GUI 처리 스레드들 보다 상대적으로 낮은 우선순위를 가지도록 하여, 리틀코어에 우선적으로 할당하는 경향이 많다. 이는 이벤트에 대한 응답시간이 증가하는 문제점을 야기한다.In addition, the work content and work time of procedures that follow up the event are relatively larger than the task of processing input events in the GUI component and passing them to the event handler. However, in the Android platform, event processing threads in charge of these procedures have a relatively lower priority than GUI processing threads, so there is a tendency to preferentially allocate to little cores. This causes a problem in that the response time to the event is increased.

즉, 종래의 GUI 컴포넌트 구동과 이벤트 처리 방식을 위한 코어 할당 방식은 많은 에너지를 소모하면서도 오히려 사용자 응답시간을 증가(지연)시켜 사용자 만족도를 낮추는 문제점이 있는 것이다.That is, the conventional method of allocating cores for GUI component driving and event processing consumes a lot of energy and increases (delays) user response time, thereby lowering user satisfaction.

이에 따라 본 발명에서는 적어도 하나 이상의 빅코어 및 리틀코어 구조의 스마트 모바일 단말에서, GUI 컴포넌트의 구동을 위한 GUI 처리 스레드와, 이벤트 처리를 위한 이벤트 처리 스레드들을 사용자의 경험을 활용하여 빅코어 혹은 리틀코에 효율적으로 할당함으로써, 에너지의 효율성을 극대화하면서 동시에 이벤트 처리에 대한 응답시간을 현저하게 감소시킬 수 있도록 하는 방안을 제안하고자 한다.Accordingly, in the present invention, in the smart mobile terminal having at least one big core and little core structure, a GUI processing thread for driving a GUI component and an event processing thread for event processing are used by the user to use the Big Core or Little Core structure. By efficiently allocating energy, we want to propose a method that can significantly reduce the response time for event processing while maximizing energy efficiency.

즉, 본 발명은 GUI 컴포넌트를 이용한 사용자 경험인 상기 GUI 컴포넌트에 대한 사용빈도에 따라 상기 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 효율적으로 할당하여 에너지 소비를 최적화하고, 이벤트에 대한 응답시간을 최소화할 수 있도록 하는 방법을 제공하는 것이다.That is, the present invention optimizes energy consumption by efficiently allocating a plurality of threads related to the GUI component to the big core or the little core according to the frequency of use of the GUI component, which is a user experience using the GUI component, and responds to the event. It provides a way to minimize time.

다음으로 본 발명의 기술분야에 존재하는 선행기술에 대하여 간단하게 설명하고, 이어서 본 발명이 상기 선행기술에 비해서 차별적으로 이루고자 하는 기술적 사항에 대해서 기술하고자 한다.Next, the prior art existing in the technical field of the present invention will be briefly described, and then the technical matters that the present invention intends to achieve differently from the prior art will be described.

먼저 비특허 문헌 "RAVEN: Perception-aware Optimization of Power Consumption for Mobile Games"는 모바일 단말에서 모바일 게임을 실행할 때 그래픽 화면의 프레임율에 따라 에너지 소모가 달라지는 것을 착안하여 게임 응용프로그램에서 높은 프레임율이 요구되지 않는 메뉴 화면 등에 대해서는 프레임율을 낮추어 에너지 소비를 줄이도록 하는 방안을 기재하고 있다.First, the non-patent document "RAVEN: Perception-aware Optimization of Power Consumption for Mobile Games" requires a high frame rate in game applications, considering that energy consumption varies depending on the frame rate of the graphic screen when a mobile game is executed on a mobile terminal. For menu screens that do not work, it describes ways to reduce energy consumption by lowering the frame rate.

즉, 상기 선행기술은 모바일 단말에의 에너지 소비를 줄이는 방법을 기재하고 있으나, 모바일 게임을 실행할 때 실제 액티브한 화면을 제외한 고정된 화면으로 표시되는 메뉴 등의 프레임율을 낮추어 그래픽을 처리하는 GPU(graphics processing unit)의 부하를 감소시켜 에너지 소비를 줄이도록 하는 것이다.That is, the prior art describes a method of reducing energy consumption in a mobile terminal, but when executing a mobile game, a GPU that processes graphics by lowering the frame rate of menus displayed on a fixed screen except for the actual active screen ( It is to reduce the energy consumption by reducing the load on the graphics processing unit.

반면에 본 발명은 사용자 경험을 바탕으로 위젯과 같은 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 할당하여 스마트 모바일 단말의 에너지 소비를 최적화하기 위한 것으로, 양 발명은 구성, 목적 및 효과에 있어서 현저한 차이점이 있다.On the other hand, the present invention is to optimize the energy consumption of a smart mobile terminal by allocating a plurality of threads related to a GUI component such as a widget to a big core or a little core based on user experience. There is a marked difference.

또한 한국등록특허 제2166644호(2020.10.12.)는 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법에 관한 것으로, 복수의 빅코어와 스몰코어(Little core)를 포함하는 전자 시스템에 있어서, 빅코어의 온도 및 작업량에 따라 해당 빅코어에 상응하는 스몰코어 간의 스위칭을 수행하여 멀티 코어 프로세서에 대한 온도관리를 수행하는 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법에 관한 것이다.In addition, Korean Patent No. 2166644 (2020.10.12.) relates to an electronic system including a plurality of heterogeneous cores and an operating method thereof, in an electronic system including a plurality of big cores and small cores, The present invention relates to an electronic system including a plurality of heterogeneous cores for performing temperature management of a multi-core processor by performing switching between small cores corresponding to the corresponding big cores according to the temperature and workload of the big core, and an operating method thereof.

상기 선행기술은 빅코어와 리틀코어를 포함하는 비대칭 멀티코어의 구조로 구성된 전자 시스템에서 각 코어의 온도를 관리하는 것일 뿐, 사용자 경험을 활용하여 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 또는 리틀코어에 각각 할당함으로써, 상기 비대칭 멀티코어 구조로 구성된 스마트 모바일 단말의 에너지 소비를 최적화하고, 이벤트 처리에 대한 응답기간을 최소화하는 본 발명의 기술적 특징을 전혀 기재하거나 시사 혹은 그 어떠한 암시도 없다.The prior art is merely to manage the temperature of each core in an electronic system composed of an asymmetric multi-core structure including a big core and a little core, and a plurality of threads related to the GUI component can be created using the user experience to either the big core or the little core. There is no description, suggestion, or any suggestion of the technical features of the present invention for optimizing the energy consumption of the smart mobile terminal configured with the asymmetric multi-core structure and minimizing the response period for event processing by allocating to each.

본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 빅코어와 리틀코어로 구성된 멀티코어 구조의 중앙처리장치(프로세서)를 사용하는 스마트 모바일 단말의 에너지 소비를 최적화하고 이벤트 처리에 대한 응답시간을 최소화할 수 있도록 GUI 컴포넌트에 관련한 복수의 스레드를 상기 빅코어 혹은 리틀코어에 효율적으로 할당하는 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법을 제공하는 것을 그 목적으로 한다.The present invention was created to solve the above problems, and optimizes the energy consumption of a smart mobile terminal using a central processing unit (processor) of a multi-core structure composed of a big core and a little core and a response time for event processing To provide a device and method for optimizing energy consumption of a smart mobile terminal having a big. for that purpose

또한 본 발명은 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 토대로 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 또는 리틀코어에 효율적으로 할당하여 스마트 모마일 단말의 에너지 소비를 현저하게 줄이고, 이벤트 처리에 대한 시간을 최소화하는 장치 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.In addition, the present invention efficiently allocates a plurality of threads related to the GUI component to the big core or the little core based on the frequency of use, which is the user experience for the GUI component, remarkably reducing the energy consumption of the smart mobile terminal and reducing the time for event processing. It is another object to provide an apparatus and method for minimizing the

또한 본 발명은 사용자 경험에 따른 스마트 모바일 단말에 설치되는 각 응용프로그램에 대한 GUI 컴포넌트에 대한 사용빈도에 따라, 상기 GUI 컴포넌트 구동을 위한 GUI 처리 스레드를 빅코어 혹은 리틀코어에 우선 할당하고, 상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생되면, 상기 사용빈도에 따라 상기 입력 이벤트에 대한 처리를 수행하는 이벤트 처리 스레드를 빅코어 혹은 리틀코어로 할당하여, 상기 GUI 컴포넌트가 상기 스마트 모바일 단말의 포그라운드(foreground)에 계속 상주하더라도 상기 스마트 모바일 단말의 에너지 소비와 이벤트 대한 응답시간을 동시에 줄일 수 있도록 하는 장치 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.In addition, the present invention first allocates a GUI processing thread for driving the GUI component to the big core or the little core according to the usage frequency of the GUI component for each application installed in the smart mobile terminal according to the user experience, and the GUI When an input event by a user occurs in a component, an event processing thread that processes the input event is assigned to a big core or a little core according to the frequency of use, so that the GUI component is placed in the foreground of the smart mobile terminal ( It is another object of the present invention to provide an apparatus and method for simultaneously reducing energy consumption of the smart mobile terminal and response time to an event even if it continuously resides in the foreground).

본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치는, GUI 컴포넌트(위젯)에 대한 사용자 경험을 검사하는 GUI 컴포넌트 검사부, 상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 GUI 처리 스레드 코어 할당부 및 상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 이벤트 처리 스레드 코어 할당부를 포함하는 것을 특징으로 한다.An apparatus for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on a user experience according to an embodiment of the present invention includes a GUI component inspection unit that inspects a user experience for a GUI component (widget), and the inspection result Accordingly, a GUI processing thread core allocator for allocating a GUI processing thread for processing the operation of the GUI component to the big core or the little core, and when an input event occurs in the GUI component, the input and an event processing thread core allocator for allocating an event processing thread for processing an event to the big core or the little core.

또한 상기 GUI 컴포넌트 검사부는, 상기 GUI 컴포넌트에 대한 사용빈도를 검사함으로써 상기 GUI 컴포넌트에 대한 사용자 경험을 검사하는 것을 특징으로 한다.In addition, the GUI component inspecting unit is characterized in that it inspects the user experience of the GUI component by inspecting the frequency of use of the GUI component.

또한 상기 GUI 처리 스레드 코어 할당부는, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면, 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면, 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.In addition, the GUI processing thread core allocator is, when the frequency of use of the GUI component exceeds a preset threshold, first allocates the GUI processing thread to the big core, and the frequency of use exceeds a preset threshold. In the following cases, it is characterized in that the GUI processing thread is first allocated to the little core.

또한 상기 이벤트 처리 스레드 코어 할당부는, 상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하고, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면 해당 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.In addition, the event processing thread core allocator may include an event processing thread for processing the input event when an input event by a user occurs in the GUI component and the frequency of use of the GUI component exceeds a preset threshold value. The big core is first allocated, and when the frequency of use is less than or equal to a preset threshold, the event processing thread is first allocated to the little core.

또한 상기 에너지 소비 최적화 장치는, 상기 빅코어 혹은 리틀코어로 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지부및 상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트부를 더 포함하는 것을 특징으로 한다.In addition, the apparatus for optimizing energy consumption is a core that cancels assignment of the event processing thread to the big core or the little core when the processing of the input event is completed by the event processing thread allocated to the big core or the little core. Each time the user uses the release unit and the GUI component, it further comprises a user experience counting unit for accumulating and counting the frequency of use, which is a user experience for the GUI component.

아울러 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 방법은, GUI 컴포넌트(위젯)에 대한 사용자 경험을 검사하는 GUI 컴포넌트 검사 단계, 상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 GUI 처리 스레드 코어 할당단계 및 상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 이벤트 처리 스레드 코어 할당 단계를 포함하는 것을 특징으로 한다.In addition, the method for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on user experience according to an embodiment of the present invention includes a GUI component inspection step of inspecting a user experience for a GUI component (widget), the inspection According to the result, the GUI processing thread core assignment step of allocating the GUI processing thread for processing the operation of the GUI component to the big core or the little core, and when an input event occurs in the GUI component, according to the inspection result and an event processing thread core assignment step of allocating an event processing thread for processing the input event to the big core or the little core.

또한 상기 GUI 컴포넌트 검사 단계는, 상기 GUI 컴포넌트에 대한 사용빈도를 검사함으로써 상기 GUI 컴포넌트에 대한 사용자 경험을 검사하는 것을 특징으로 한다.In addition, the GUI component inspection step is characterized in that the user experience of the GUI component is inspected by inspecting the frequency of use of the GUI component.

또한 상기 GUI 처리 스레드 코어 할당 단계는, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면, 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면, 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.In the GUI processing thread core allocating step, when the frequency of use of the GUI component exceeds a preset threshold, the GUI processing thread is first allocated to the big core, and the frequency of use exceeds a preset threshold. If the value is less than or equal to the value, the GUI processing thread is first allocated to the little core.

또한 상기 이벤트 처리 스레드 코어 할당 단계는, 상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하고, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면 해당 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.In addition, in the event processing thread core assignment step, when an input event by a user occurs in the GUI component and the frequency of use of the GUI component exceeds a preset threshold, an event processing thread for processing the corresponding input event is preferentially assigned to the big core, and when the frequency of use is less than or equal to a preset threshold, the event processing thread is first assigned to the little core.

또한 상기 에너지 소비 최적화 방법은, 상기 빅코어 혹은 리틀코어로 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지 단계 및 상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트 단계를 더 포함하는 것을 특징으로 한다.Also, in the method for optimizing energy consumption, when the processing of the input event is completed by the event processing thread allocated to the big core or the little core, the core for canceling the allocation to the big core or the little core for the event processing thread The method may further include a cancellation step and a user experience count step of accumulating and counting the frequency of use, which is a user experience for the GUI component, whenever the user uses the GUI component.

이상에서와 같이 본 발명의 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법에 따르면 사용자 경험을 기반으로 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 각각 할당함으로써, 상기 GUI 컴포넌트가 상기 스마트 모바일 단말의 포그라운드에 계속 상주하더라도 해당 스마트 모바일 단말의 에너지 소비를 줄이고 이벤트에 대한 응답시간을 줄일 수 있도록 하는 효과가 있다.As described above, according to the apparatus and method for optimizing energy consumption of a smart mobile terminal of a big.LITTLE multi-core structure based on the user experience of the present invention, a plurality of threads related to the GUI component based on the user experience are configured as a big core or a little core. By assigning each to , even if the GUI component continues to reside in the foreground of the smart mobile terminal, energy consumption of the corresponding smart mobile terminal and response time to an event can be reduced.

도 1은 본 발명의 일 실시예에 따른 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 GUI 환경에서 GUI 컴포넌트가 동작하는 구조를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 하나의 GUI 컴포넌트가 동작하는 구조를 상세히 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 동작을 설명하기 위해 나타낸 개념도이다.
도 4는 본 발명의 일 실시예에 따른 GUI 컴포넌트에 관련한 복수의 스레드를 멀티코어에 할당하는 방법을 설명하기 위해 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 구성을 나타낸 블록도이다.
도 6은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비를 최적화하는 절차를 나타낸 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 에너지 소비에 대한 성능을 종래기술과 비교한 도면이다.
도 8은 본 발명의 일 실시예에 따른 이벤트 처리의 응답시간에 대한 성능을 종래기술과 비교한 도면이다.
1 is a diagram illustrating a structure in which a GUI component operates in a GUI environment of a smart mobile terminal having a big.LITTLE multi-core structure according to an embodiment of the present invention.
2 is a diagram illustrating in detail a structure in which one GUI component operates according to an embodiment of the present invention.
3 is a conceptual diagram illustrating an operation of an apparatus for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on a user experience according to an embodiment of the present invention.
4 is a diagram illustrating a method of allocating a plurality of threads related to a GUI component to a multicore according to an embodiment of the present invention.
5 is a block diagram illustrating a configuration of an apparatus for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on a user experience according to an embodiment of the present invention.
6 is a flowchart illustrating a procedure for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on user experience according to an embodiment of the present invention.
7 is a diagram comparing performance with respect to energy consumption according to an embodiment of the present invention with that of the prior art.
8 is a diagram comparing the performance of the response time of event processing according to an embodiment of the present invention with that of the prior art.

이하, 첨부한 도면을 참조하여 본 발명의 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법과 관련된 바람직한 실시 예를 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다.Hereinafter, an apparatus and method for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on the user experience of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in each figure indicate like elements. In addition, specific structural or functional descriptions of the embodiments of the present invention are only exemplified for the purpose of describing the embodiments according to the present invention, and unless otherwise defined, all terms used herein, including technical or scientific terms They have the same meaning as commonly understood by those of ordinary skill in the art to which the present invention pertains. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. It is preferable not to

도 1은 본 발명의 일 실시예에 따른 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 GUI 환경에서 GUI 컴포넌트가 동작하는 구조를 나타낸 도면이다.1 is a diagram illustrating a structure in which a GUI component operates in a GUI environment of a smart mobile terminal having a big.LITTLE multi-core structure according to an embodiment of the present invention.

도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 GUI 환경에서, 응용프로그램에 대한 적어도 하나 이상의 GUI 컴포넌트가 동작하는 구조는 GUI 컴포넌트의 화면출력, 사용자 입력 이벤트 및 동작을 등을 담당하는 GUI 처리 스레드와, 상기 GUI 컴포넌트에 사용자 입력에 의한 이벤트가 발생하였을 때, 해당 이벤트를 처리하기 위해 개발자가 사전에 정의해 놓은 프로시져(procedure)들을 실행하여 상기 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드로 구성된다.1 , in the GUI environment of the smart mobile terminal having a big.LITTLE multi-core structure according to an embodiment of the present invention, the structure in which at least one GUI component for an application program operates is the screen output of the GUI component. , a GUI processing thread in charge of user input events and operations, and when an event by user input occurs in the GUI component, the developer executes pre-defined procedures to process the event. It consists of at least one or more event processing threads for processing the event.

GUI 컴포넌트의 이벤트 처리에 따른 사용자에 대한 최종 응답시간(Response Time)은 GUI 처리 스레드와 이벤트 처리 스레드의 동작이 완료되는 시점(즉, 각 스레드의 동작 시작과 완료되는 시간 사이의 시간 구간)이 된다.The final response time for the user according to the event processing of the GUI component is the time point at which the GUI processing thread and the event processing thread operation are completed (that is, the time interval between the start and completion time of each thread). .

여기서 각 GUI 컴포넌트는 스마트 모바일 단말에 각각 설치되는 각 응용프로그램의 액티비티(activity)를 담당하는 위젯을 의미한다. 상기 액티비티는 입력 이벤트를 위한 사용자 입력과 화면출력으로 구성된다. 이때, 상기 각 GUI 컴포넌트는 상기 사용자 입력과 화면출력을 동시에 담당하며, 상기 사용자 입력과 화면출력은 GUI 처리 스레드에 의해 구동된다.Here, each GUI component means a widget responsible for the activity of each application program installed in each smart mobile terminal. The activity consists of a user input and a screen output for an input event. In this case, each of the GUI components is in charge of the user input and the screen output at the same time, and the user input and the screen output are driven by a GUI processing thread.

또한 프로시져는 이벤트(예: 특정 정보 출력, 로그인 등)를 처리하기 위한 일련의 과정을 상기 각 응용프로그램의 개발자가 사전에 정의해놓은 것으로, 상기 프로시져는 이벤트 처리 스레드에 의해 실행된다. In addition, a procedure is defined in advance by the developer of each application program for a series of processes for processing an event (eg, outputting specific information, logging in, etc.), and the procedure is executed by an event processing thread.

이하에서는, 하나의 GUI 컴포넌트를 일예로 하여, GUI 컴포넌트가 동작하는 구조를 보다 상세히 설명하도록 한다.Hereinafter, a structure in which a GUI component operates will be described in more detail by taking one GUI component as an example.

도 2는 본 발명의 일 실시예에 따른 하나의 GUI 컴포넌트가 동작하는 구조를 상세히 나타낸 도면이다.2 is a diagram illustrating in detail a structure in which one GUI component operates according to an embodiment of the present invention.

도 2에 도시한 바와 같이, GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하면 이벤트 핸들러가 동작하여, 이벤트 처리 스레드는 해당 응용프로그램의 개발자가 사전에 정의하여 등록해 놓은 프로시져들 중 상기 입력 이벤트에 대한 프로시져를 실행시킴으로써, 상기 입력 이벤트에 대한 이벤트를 처리한다.As shown in Fig. 2, when an input event by the user occurs in the GUI component, the event handler operates, and the event processing thread is used for the input event among procedures defined and registered by the developer of the corresponding application in advance. By executing a procedure, it processes the event for the input event.

이때, 프로시져는 각 응용프로그램 마다 하나 일 수도 있으며, 도 2에 나타낸 것과 같이 여러 개의 프로시져가 직렬성과 병렬성을 갖고 실행될 수 있다(도 2는 n개의 병렬성과 m개의 직렬성을 가짐).At this time, there may be one procedure for each application program, and as shown in FIG. 2 , several procedures may be executed with seriality and parallelism ( FIG. 2 has n parallelism and m seriality).

또한 GUI 컴포넌트의 화면동작과 사용자 입력을 포함하는 GUI 컴포넌트의 구동을 처리하는 GUI 처리 스레드는 사용자 입력을 기다려서 처리해야 하므로, 상시 동작해야 한다. 그러므로 응용프로그램(즉, 액티비티)이 스마트 모바일 단말의 포그라운드에 있을 경우, 상기 애플리케이션의 사용여부에 상관없이 해당 애플리케이션의 화면출력을 구동하기 위한 GUI 처리 스레드는 항상 프로세서를 점유한다.In addition, the GUI processing thread that processes the GUI component's screen operation and the operation of the GUI component including the user input must wait for the user's input and process it, so it must be operated all the time. Therefore, when an application program (ie, activity) is in the foreground of the smart mobile terminal, the GUI processing thread for driving the screen output of the application always occupies the processor regardless of whether the application is used.

반면에 이벤트 핸들러와 이에 예속된 각 프로시져들을 담당하는 적어도 하나 이상의 이벤트 처리 스레드는 해당 GUI 컴포넌트에 사용자 입력에 의한 입력 이벤트가 발생한 경우, 해당 입력 이벤트에 따른 이벤트를 처리하기 위해 생성 또는 구동되어 프로세서에 할당된다.On the other hand, at least one event processing thread in charge of the event handler and each procedure subordinated thereto is created or driven to process the event according to the input event when an input event by user input occurs in the corresponding GUI component, and is then sent to the processor. is assigned

여기서 본 발명의 스마트 모바일 단말은 big.LITTLE 멀티코어 구조를 기반으로 하므로 프로세서(CPU)는 적어도 하나 이상의 빅코어 및 리틀코어로 구성되는 멀티코어 프로세서이다.Here, since the smart mobile terminal of the present invention is based on the big.LITTLE multi-core structure, the processor (CPU) is a multi-core processor composed of at least one big core and a little core.

이때, big.LITTLE 멀티코어 구조의 스마트 모바일 단말에서, 종래의 big.LITTLE 코어 할당 방식은 빠른 사용자 응답성을 제공하기 위해 GUI 처리 쓰레드들을 빅코어에 우선적으로 할당한다.In this case, in a smart mobile terminal having a big.LITTLE multi-core structure, the conventional big.LITTLE core allocation method preferentially allocates GUI processing threads to the big core in order to provide fast user responsiveness.

예를 들어, 도 1에 도시한 3개의 GUI 컴포넌트를 구동하기 위한 GUI 처리 스레드는 해당 응용프로그램(즉, 응용프로그램의 액티비티)이 포그라운드에 있을 경우, 사용여부와 상관없이 프로세서를 계속 점유하므로, 최소 3개의 빅코어가 계속 동작해야 한다. 이는 상기 스마트 모바일 단말의 에너지 효율성이 떨어지는 문제가 있다.For example, the GUI processing thread for driving the three GUI components shown in Fig. 1 continues to occupy the processor regardless of whether the application program (that is, the activity of the application) is in the foreground, regardless of whether it is used or not. At least three big cores must continue to operate. This has a problem in that the energy efficiency of the smart mobile terminal is lowered.

또한 사용자가 입력 이벤트를 발생시킨 후, 이벤트 처리에 대한 응답시간은 GUI 처리 스레드와 이벤트 처리를 위해 사전에 정의되어 등록된 적어도 하나 이상의 프로시져들을 실행시켜 처리하는 이벤트 처리 스레드들이 모두 완료할 때까지의 시간을 의미한다. 이 경우, GUI 처리 스레드보다는 이벤트 처리 스레드에 의한 프로시져들의 실행이 상대적으로 오랜 시간이 소요되는 것이 일반적이다.In addition, after the user generates an input event, the response time for event processing is the time until the GUI processing thread and the event processing threads that execute and process at least one or more procedures defined and registered in advance for event processing are all completed. means time. In this case, it is common that the execution of procedures by the event processing thread rather than the GUI processing thread takes a relatively long time.

즉, 종래의 big.LITTLE 코어할당 방식은 에너지 비효율성과 응답시간의 지연문제가 발생하는 문제점이 있는 것이다.That is, the conventional big.LITTLE core allocation method has problems of energy inefficiency and delay in response time.

따라서 본 발명에서는 종래의 big.LITTLE 코어 할당 방식의 문제점을 개선하기 위해 big.LITTLE 멀티코어 기반의 스마트 모바일 단말의 GUI 환경에서, GUI 컴포넌트에 관련한 각 스레드들을 GUI 컴포넌트에 대한 사용자 경험에 따라 빅코어 혹은 리틀코어에 효율적으로 할당하도록 하여 에너지 소비를 최적화하고 응답시간을 최소화할 수 있도록 하고자 한다.Therefore, in the present invention, in order to improve the problem of the conventional big.LITTLE core allocation method, in the GUI environment of the big.LITTLE multi-core based smart mobile terminal, each thread related to the GUI component is divided into the big core according to the user experience of the GUI component. Alternatively, it is intended to optimize energy consumption and minimize response time by efficiently allocating it to little cores.

이하에서는 GUI 컴포넌트에 관련한 복수의 스레드들을 빅코어 또는 리틀코어에 할당하는 방법을 설명하고자 한다.Hereinafter, a method of allocating a plurality of threads related to a GUI component to a big core or a little core will be described.

도 3은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 동작을 설명하기 위해 나타낸 개념도이다.3 is a conceptual diagram illustrating an operation of an apparatus for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on a user experience according to an embodiment of the present invention.

도 3에 도시한 바와 같이, 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치(100)(이하, 에너지 소비 최적화 장치라 칭함)는 스마트 모바일 단말에 구비된다.As shown in FIG. 3 , an apparatus 100 for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure (hereinafter referred to as an energy consumption optimization apparatus) based on a user experience according to an embodiment of the present invention It is provided in a smart mobile terminal.

이때, GUI 컴포넌트에 관련한 복수의 스레드는 애플리케이션의 액티비티를 구동하기 위한 적어도 하나 이상의 GUI 처리 스레드와, 사용자의 입력 이벤트에 따른 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 포함하여 구성된다.In this case, the plurality of threads related to the GUI component is configured to include at least one GUI processing thread for driving an application activity, and at least one or more event processing thread for processing an event according to a user input event.

또한 스마트 모바일 단말은 적어도 하나 이상의 빅코어(210) 및 리틀코어(220)를 포함하는 프로세서(200)(즉, CPU)를 포함하여 구성된다.In addition, the smart mobile terminal is configured to include a processor 200 (ie, CPU) including at least one big core 210 and a little core 220 .

즉, 에너지 소비 최적화 장치(100)는 빅코어(210) 및 리틀코어(220)로 구성된 멀티코어 구조의 스마트 모바일 단말에 구비되어, 해당 스마트 모바일 단말의 에너지 소비를 최적화하기 위한 것이다.That is, the apparatus 100 for optimizing energy consumption is provided in a smart mobile terminal having a multi-core structure including the big core 210 and the little core 220 to optimize energy consumption of the smart mobile terminal.

또한 에너지 소비 최적화 장치(100)는 스마트 모바일 단말에 설치되는 각종 애플리케이션에 대해 생성된 액티비티를 구동하기 위한 GUI 컴포넌트에 관련한 복수의 스레드를 사용자 경험을 활용하여 처리속도가 높으나 에너지 소비가 많은 빅코어, 처리속도가 늦으나 에너지 소비가 낮은 리틀코어 또는 이들의 조합에 효율적으로 할당하여 상기 스마트 모바일 단말의 에너지 소비를 줄이면서 사용자의 입력 이벤트에 따른 이벤트 처리에 따른 응답시간을 최소화한다.In addition, the energy consumption optimization apparatus 100 utilizes a user experience with a plurality of threads related to GUI components for driving activities generated for various applications installed in the smart mobile terminal, so that the processing speed is high but energy consumption is large, big core, By efficiently allocating a small core having a slow processing speed but low energy consumption or a combination thereof, the energy consumption of the smart mobile terminal is reduced and the response time according to the event processing according to the user's input event is minimized.

또한 GUI 컴포넌트에 관련한 복수의 스레드는 애플리케이션의 액티비티를 구동하기 위한 적어도 하나 이상의 GUI 처리 스레드와, 사용자의 입력 이벤트에 따른 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 포함하여 구성된다.In addition, the plurality of threads related to the GUI component is configured to include at least one or more GUI processing threads for driving an application activity, and at least one or more event processing threads for processing an event according to a user input event.

또한 에너지 소비 최적화 장치(100)는 GUI 컴포넌트에 대한 사용자의 사용빈도(즉, 사용자 경험)를 카운트하고 있으면서, GUI 컴포넌트에 대한 사용빈도가 낮은 경우, 상기 GUI 컴포넌트의 GUI 처리 스레드를 에너지 소비가 낮으나 처리속도가 느린 리틀코어(220)에 우선적으로 할당하여 스마트 모바일 단말의 에너지 소비를 줄일 수 있도록 한다.In addition, the energy consumption optimization apparatus 100 counts the user's frequency of use (ie, user experience) for the GUI component, and when the frequency of use for the GUI component is low, the energy consumption of the GUI processing thread of the GUI component is low, but By preferentially allocating to the little core 220, which has a slow processing speed, it is possible to reduce energy consumption of the smart mobile terminal.

반면, 에너지 소비 최적화 장치(100)는 GUI 컴포넌트의 사용빈도가 높으면 해당 GUI 컴포넌트의 GUI 처리 스레드를 에너지 소비가 높으나 처리속도가 빠른 빅코어(210)에 우선적으로 할당하여 GUI 컴포넌트의 구동을 빠르게 함으로써, 사용자 만족성을 높일 수 있도록 한다.On the other hand, the energy consumption optimization apparatus 100 prioritizes the GUI processing thread of the GUI component when the use frequency of the GUI component is high to the Big Core 210, which has high energy consumption but high processing speed, to speed up the operation of the GUI component. , to increase user satisfaction.

또한 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생한 경우, 에너지 소비 최적화 장치(100)는, 해당 GUI 컴포넌트의 사용빈도가 높으면 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 빅코어(210)에 할당하여 이벤트에 대한 응답속도를 빠르게 함으로써 사용자 만족성을 높일 수 있도록 한다. 반면에 GUI 컴포넌트의 사용빈도가 낮으면 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 리틀코어(220)에 할당하여, 스마트 모바일 단말의 에너지 소비를 줄일 수 있도록 한다.In addition, when an input event by the user occurs in the GUI component, the energy consumption optimization apparatus 100 allocates an event processing thread for processing the input event to the Big Core 210 when the use frequency of the GUI component is high By speeding up the response speed, user satisfaction can be increased. On the other hand, when the frequency of use of the GUI component is low, an event processing thread for processing the input event is allocated to the little core 220 to reduce energy consumption of the smart mobile terminal.

즉, 에너지 소비 최적화 장치(100)는 사용자 경험에 따른 GUI 컴포넌트의 사용빈도에 따라 GUI 컴포넌트를 구동하기 위한 GUI 처리 스레드와 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 빅코어(210) 혹은 리틀코어(220)로 할당하는 것이다.That is, the energy consumption optimizing apparatus 100 provides a GUI processing thread for driving a GUI component and an event processing thread for processing an input event according to the usage frequency of the GUI component according to the user experience to the big core 210 or the little core ( 220) is assigned.

한편, 프로세서(200)는 GUI 컴포넌트에 관련한 복수의 스레드에 대한 에너지 소비 최적화 장치(100)의 할당에 따라 상기 할당된 각 스레드를 빅코어(210) 및 리틀코어(220)를 통해 처리한다.Meanwhile, the processor 200 processes each allocated thread through the big core 210 and the little core 220 according to the allocation of the apparatus 100 for optimizing energy consumption for a plurality of threads related to the GUI component.

이하에서는 GUI 컴포넌트에 관련한 각각의 스레드를 사용자 경험에 따라 빅코어(210) 또는 리틀코어(220)로 할당하는 방법을 상세히 설명하도록 한다.Hereinafter, a method of allocating each thread related to the GUI component to the big core 210 or the little core 220 according to user experience will be described in detail.

도 4는 본 발명의 일 실시예에 따른 GUI 컴포넌트에 관련한 복수의 스레드를 멀티코어에 할당하는 방법을 설명하기 위해 나타낸 도면이다.4 is a diagram illustrating a method of allocating a plurality of threads related to a GUI component to a multicore according to an embodiment of the present invention.

도 4에 도시한 바와 같이, 본 발명의 일 실시예에 따른 에너지 소비 최적화 장치(100)는 각 애플리케이션의 액티비티가 생성되어 해당 액티비티를 구동하기 위해 등록된 적어도 하나 이상의 GUI 컴포넌트에 대한 GUI 처리 스레드를 빅코어(210) 또는 멀티코어(220)에 할당하는 제1 과정(도 4에 나타낸 라인 1 내지 7)과, 상기 GUI 컴포넌트에서 입력 이벤트가 발생하면 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210) 또는 멀티코어(220)에 할당하는 제2 과정(도 4에 나타낸 라인 8 내지 14)을 수행하여 상기 GUI 컴포넌트에 관련한 복수의 스레드를 각 코어에 할당한다.As shown in FIG. 4 , the apparatus 100 for optimizing energy consumption according to an embodiment of the present invention generates a GUI processing thread for at least one GUI component registered in order to generate an activity of each application and drive the corresponding activity. The first process (lines 1 to 7 shown in Fig. 4) of allocating to the big core 210 or the multicore 220, and at least one or more event processing threads for processing the event when an input event occurs in the GUI component The second process of allocating to the big core 210 or the multicore 220 (lines 8 to 14 shown in FIG. 4 ) is performed to allocate a plurality of threads related to the GUI component to each core.

한편, 도 4에 나타낸 widget[i](위젯)는 해당 액티비티의 구동을 담당하기 위한 적어도 하나 이상의 GUI 컴포넌트를 의미하며, numwidget는 상기 GUI 컴포넌트의 개수를 나타낸다.Meanwhile, widget[i] (widget) shown in FIG. 4 means at least one or more GUI components for driving a corresponding activity, and num widget indicates the number of the GUI components.

또한 num_Proc[i]는 GUI 컴포넌트의 이벤트 처리를 위한 프로시져의 개수를 의미하며, widget[i].usage는 해당 GUI 컴포넌트(i 번째)의 사용빈도(즉, 해당 GUI 컴포넌트에 대한 사용자 경험)를 의미한다.In addition, num_Proc[i] means the number of procedures for handling events of the GUI component, and widget[i].usage means the frequency of use of the GUI component (i-th) (that is, the user experience for the GUI component). do.

또한 widget[i].Proc[k]는 GUI 컴포넌트(i 번째)의 이벤트 처리를 위한 프로시져(k 번째)를 의미하고, USAGE_THRSHOLD는 사전에 설정한 사용빈도 대한 임계값을 의미한다.In addition, widget[i].Proc[k] means a procedure (k-th) for event processing of the GUI component (i-th), and USAGE_THRSHOLD means a preset threshold for the frequency of use.

또한 도 4에 나타낸 라인 1 내지 7을 참조하여 설명하면 에너지 소비 최적화 장치(100)는 각 애플리케이션의 액티비티를 구동하기 위해 각각 등록된 적어도 하나 이상의 GUI 컴포넌트들을 검사하여 상기 검사한 GUI 컴포넌트 중 사용빈도가 사전에 설정한 임계값 미만인 GUI 컴포넌트는 리틀코어(220)에 우선적으로 할당한다.In addition, referring to lines 1 to 7 shown in FIG. 4 , the energy consumption optimization apparatus 100 checks at least one or more GUI components registered respectively in order to drive an activity of each application, and the frequency of use among the inspected GUI components is GUI components that are less than a preset threshold value are preferentially allocated to the little core 220 .

즉, 에너지 소비 최적화 장치(100)는 사용자 경험에 따른 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값(USAGE_THRHOLD)보다 낮은 GUI 컴포넌트의 GUI 처리 스레드를 리틀코어(220)로 우선 할당하는 것이다. 반면에, 에너지 소비 최적화 장치(100)는 검사한 GUI 컴포넌트 중 사용빈도가 사전에 설정한 임계값 이상인 GUI 컴포넌트의 GUI 처리 스레드는 빅코어(210)에 우선 할당한다.That is, the apparatus 100 for optimizing energy consumption first allocates the GUI processing thread of the GUI component to the little core 220, the frequency of use of the GUI component according to the user experience being lower than the preset threshold USAGE_THRHOLD. On the other hand, the apparatus 100 for optimizing energy consumption first allocates a GUI processing thread of a GUI component whose usage frequency is equal to or greater than a preset threshold value among the inspected GUI components to the big core 210 .

또한 이벤트 처리 스레드에 대한 코어 할당 방법을 도 4에 나타낸 라인 8 내지 14를 참조하여 설명하면, 특정 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하는 경우, 에너지 소비 최적화 장치(100)는 해당 GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값을 초과하면, 해당 GUI 컴포넌트의 이벤트 핸들러에 등록된 프로시져들을 실행하는 이벤트 처리 스레드를 빅코어(210)에 우선 할당한다.In addition, when the method of allocating cores to the event processing thread is described with reference to lines 8 to 14 shown in FIG. 4 , when an input event by a user occurs in a specific GUI component, the energy consumption optimization apparatus 100 determines the value of the corresponding GUI component. When the frequency of use exceeds a preset threshold, an event processing thread executing procedures registered in the event handler of the corresponding GUI component is first allocated to the big core 210 .

이때, GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값 이하인 경우, 에너지 소비 최적화 장치(100)는 해당 GUI 컴포넌트의 이벤트 핸들러에 등록된 프로시져들을 실행하는 이벤트 처리 스레드를 리틀코어(220)에 우선 할당한다. At this time, when the frequency of use of the GUI component is less than or equal to a preset threshold, the energy consumption optimization apparatus 100 first allocates an event processing thread that executes procedures registered in the event handler of the GUI component to the little core 220 first. do.

한편, 에너지 소비 최적화 장치(100)는 상기 각 코어에 상기 GUI 컴포넌트에 관련한 복수의 스레드를 할당할 때, 상기 빅코어(210)를 사용하지 못하거나, 또는 리틀코어(220)를 사용하지 못하는 경우, 빅코어(210) 및 리틀코어(220) 중 사용 가능한 어느 하나의 코어에 우선 할당한다.Meanwhile, when the energy consumption optimization apparatus 100 allocates a plurality of threads related to the GUI component to each of the cores, the big core 210 or the little core 220 cannot be used. , the big core 210 and the little core 220 are allocated first to any one usable core.

또한 에너지 소비 최적화 장치(100)는 상기 GUI 컴포넌트가 삭제(즉, 해당 응용프로그램이 삭제)되면 할당한 각 스레드를 해지하고 삭제한다. 또한 이벤트 처리가 완료되면 이벤트 처리 스레드에 대한 빅코어(210) 또는 리틀코어(220)에 할당을 해지한다.In addition, when the GUI component is deleted (ie, the corresponding application program is deleted), the energy consumption optimization apparatus 100 releases and deletes each allocated thread. In addition, when the event processing is completed, the allocation to the big core 210 or the little core 220 for the event processing thread is canceled.

상기에서 설명한 것과 같이, 에너지 소비 최적화 장치(100)는 사용자 경험을 활용하여 적어도 하나 이상의 GUI 처리 스레드 및 적어도 하나 이상의 이벤트 처리 스레드를 포함하는 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어(210) 또는 리틀코어(220)에 효율적으로 할당하여 스마트 모바일 단말의 에너지 소비를 최적화하고, 이벤트 처리에 대한 응답시간을 효과적으로 줄일 수 있도록 한다.As described above, the energy consumption optimization apparatus 100 utilizes the user experience to generate a plurality of threads related to the GUI component including at least one GUI processing thread and at least one event processing thread to the Big Core 210 or Little By efficiently allocating to the core 220, the energy consumption of the smart mobile terminal is optimized, and the response time for event processing can be effectively reduced.

도 5는 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 구성을 나타낸 블록도이다. 5 is a block diagram illustrating a configuration of an apparatus for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on a user experience according to an embodiment of the present invention.

도 5에 도시한 바와 같이, 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치(100)는 스마트 모바일 단말에 설치된 응용프로그램별로 액티비티를 위해 생성된 적어도 하나 이상의 GUI 컴포넌트(위젯)를 검사하는 GUI 컴포넌트 검사부(110), 상기 검사한 결과에 따라 상기 GUI 컴포넌트에 관련한 복수의 스레드를 각 코어(빅코어 혹은 리틀코어)에 할당하는 코어 할당부(130), 상기 각 코어에 할당한 복수의 스레드를 해지하는 코어 해지부(140) 및 메모리(150)를 포함하여 구성된다.As shown in FIG. 5 , an apparatus 100 for optimizing energy consumption of a smart mobile terminal of a big.LITTLE multi-core structure based on a user experience according to an embodiment of the present invention performs an activity for each application installed in the smart mobile terminal. GUI component inspection unit 110 that inspects at least one or more GUI components (widgets) created to It is configured to include a unit 130 , a core release unit 140 for releasing a plurality of threads allocated to each of the cores, and a memory 150 .

또한 GUI 컴포넌트 검사부(110)는 응용프로그램별로 액티비티를 위해 생성되어 등록된 적어도 하나 이상의 GUI 컴포넌트(위젯)에 대한 사용빈도를 검사하는 기능을 수행한다. 즉, GUI 컴포넌트 검사부(110)는 상기 GUI 컴포넌트를 사용한 사용자 경험인 사용빈도를 검사하는 것이다. 상기 검사는 실시간으로 수행되거나, 주기적으로 수행될 수 있다.In addition, the GUI component inspection unit 110 performs a function of inspecting the frequency of use of at least one GUI component (widget) created and registered for an activity by application program. That is, the GUI component inspection unit 110 inspects the usage frequency, which is the user experience using the GUI component. The inspection may be performed in real time or periodically.

또한 응용프로그램의 액티비티는 스마트 모바일 단말에서의 화면출력, 입력 이벤트에 대한 사용자 입력 또는 이들의 조합을 포함하며, GUI 컴포넌트는 상기 액티비티를 구동하기 위한 위젯을 의미한다. 여기서, 상기 액티비티는 GUI 컴포넌트의 GUI 처리 스레드에 의해 구동되며, 입력 이벤트에 대한 이벤트 처리는 각 입력 이벤트에 대해 사전에 설정한 적어도 하나 이상의 프로시져를 실행하는 이벤트 처리 스레드에 의해 수행된다.In addition, the activity of the application includes a screen output from the smart mobile terminal, a user input for an input event, or a combination thereof, and the GUI component means a widget for driving the activity. Here, the activity is driven by a GUI processing thread of the GUI component, and event processing for input events is performed by an event processing thread executing at least one or more procedures set in advance for each input event.

또한 코어 할당부(130)는 해당 액티비티를 구동(즉, GUI 컴포넌트의 구동)하기 위한 GUI 처리 스레드와 입력 이벤트에 따른 이벤트 처리를 위한 이벤트 처리 스레드를 빅코어(210) 혹은 리틀코어(220)에 할당하는 기능을 수행하는 것으로 GUI 처리 스레드 코어 할당부(131) 및 이벤트 처리 스레드 코어 할당부(132)를 포함하여 구성된다.In addition, the core allocator 130 provides a GUI processing thread for driving a corresponding activity (that is, driving a GUI component) and an event processing thread for processing an event according to an input event to the big core 210 or the little core 220 . It performs an assignment function and includes a GUI processing thread core assignment unit 131 and an event processing thread core assignment unit 132 .

또한 GUI 처리 스레드 코어 할당부(131)는 GUI 컴포넌트별로 사용빈도를 검사한 결과, 사전에 설정한 임계값을 초과하는 경우 해당 GUI 컴포넌트의 GUI 처리 스레드를 처리속도가 높고 에너지 소비가 많은 빅코어(210)에 우선 할당한다.In addition, when the GUI processing thread core allocator 131 inspects the usage frequency for each GUI component and exceeds a preset threshold, the GUI processing thread of the GUI component is assigned to a big core (with high processing speed and high energy consumption). 210) is assigned first.

한편, GUI 처리 스레드 코어 할당부(131)는 GUI 컴포넌트별 사용빈도가 사전에 설정한 임계값 이하인 경우, 해당 GUI 컴포넌트의 GUI 처리 스레드를 처리속도가 느리지만 에너지 소비가 적은 리틀코어(220)에 우선 할당한다.On the other hand, the GUI processing thread core allocator 131 assigns the GUI processing thread of the GUI component to the little core 220 with a low processing speed but low energy consumption when the frequency of use for each GUI component is less than or equal to a preset threshold. Allocate first

또한 이벤트 처리 스레드 코어 할당부(132)는 해당 GUI 컴포넌트를 통해 사용자에 의한 입력 이벤트가 발생되면, 해당 입력 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210) 혹은 리틀코어(220)에 할당하는 기능을 수행한다.In addition, the event processing thread core allocator 132 sets at least one event processing thread for processing the input event when an input event by the user is generated through the corresponding GUI component to the big core 210 or the little core 220 . function to assign to.

이때, 이벤트 처리 스레드 코어 할당부(132)는 GUI 컴포넌트별로 사용빈도를 검사한 결과, GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값을 초과하는 경우, 해당 GUI 컴포넌트에 대한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210)에 우선 할당한다. 반면에, GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값 이하이면, 해당 GUI 컴포넌트에 대한 적어도 하나 이상의 이벤트 처리 스레드를 리틀코어(220)에 할당한다.At this time, the event processing thread core allocator 132 checks the usage frequency for each GUI component and, as a result, when the usage frequency of the GUI component exceeds a preset threshold, at least one event processing thread for the GUI component. is first allocated to the big core 210 . On the other hand, if the frequency of use of the GUI component is less than or equal to a preset threshold, at least one or more event processing threads for the GUI component are allocated to the little core 220 .

즉, 코어 할당부(130)는 GUI 컴포넌트에 관련한 모든 스레드를 한 번에 각 코어에 할당하는 것이 아니라, 우선 GUI 컴포넌트의 GUI 처리 스레드를 사용자 경험에 따른 상기 GUI 컴포넌트의 사용빈도에 따라 우선 각 코어에 할당한 후, 각 GUI 컴포넌트에서 입력 이벤트가 발생한 경우에, 해당 입력 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 각 코어에 할당하는 것이다.That is, the core allocator 130 does not allocate all the threads related to the GUI component to each core at once, but first assigns the GUI processing thread of the GUI component to each core according to the frequency of use of the GUI component according to the user experience. After allocating to , when an input event occurs in each GUI component, at least one or more event processing threads for processing the corresponding input event are allocated to each core.

또한 코어 해지부(140)는 각 코어에 할당한 적어도 하나 이상의 이벤트 처리 스레드에서 이벤트 처리가 완료된 경우, 상기 적어도 하나 이상의 이벤트 처리 스레드에 대한 각 코어의 할당을 해지한다.In addition, when the event processing is completed in at least one event processing thread allocated to each core, the core release unit 140 releases the allocation of each core to the at least one or more event processing threads.

즉, 코어 해지부(140)는 GUI 처리 스레드가 각 코어에 할당되었다고 하더라도, GUI 컴포넌트에 대한 사용이 완료된 경우, 각 코어에 대한 이벤트 처리 스레드의 할당을 해지하는 것이다.That is, even if the GUI processing thread is allocated to each core, the core release unit 140 cancels the allocation of the event processing thread to each core when the use of the GUI component is completed.

또한 사용자 경험 카운트부(120)는 사용자의 각 GUI 컴포넌트에 대한 사용(즉, 사용자 경험)이 있을 때 마다, 해당 GUI 컴포넌트에 대한 사용빈도를 누적하여 카운트하는 기능을 수행한다. 이때, GUI 컴포넌트 검사부(110)는 상기 사용자 경험 카운트(120)를 통해 카운트한 사용자 경험(즉, 사용빈도)을 이용하여 각 GUI 컴포넌트별 사용빈도를 주기적 혹은 실시간으로 검사하게 된다.In addition, the user experience counting unit 120 performs a function of accumulating and counting the usage frequency of the corresponding GUI component whenever there is a user's use of each GUI component (ie, user experience). In this case, the GUI component inspecting unit 110 periodically or real-time inspects the usage frequency for each GUI component using the user experience (ie, usage frequency) counted through the user experience count 120 .

또한 사용자 경험 카운트부(120)는 이벤트 처리 스레드가 각 코어에 할당되거나, 상기 이벤트 처리 스레드의 할당이 해지되는 것을 포함하여 사용자가 GUI 컴포넌트를 이용할 때 마다 해당 GUI 컴포넌트의 사용자 경험(사용빈도)을 누적하여 카운트한다.In addition, the user experience counting unit 120 calculates the user experience (frequency of use) of the GUI component whenever the user uses the GUI component, including when the event processing thread is allocated to each core or the event processing thread is canceled. accumulating and counting.

또한 메모리(150)는 사용빈도에 대해 사전에 설정한 임계값, 각 GUI 컴포넌트별 사용빈도, 상기 각 GUI 컴포넌트에 관련한 복수의 스레드를 각 코어에 할당하기 위한 방법(알고리즘) 등을 포함하여, 에너지 소비 최적화 장치(100)의 동작에 필요한 다양한 데이터(혹은 정보)들을 저장하는 기능을 수행한다. 이때, 상기 메모리(150)는 에너지 소비 최적화 장치(100)에 자체적으로 구비될 수 있다. 다만, 에너지 소비 최적화 장치(100)는 메모리(150)를 자체적으로 구비하지 않고, 해당 에너지 소비 최적화 장치(100)가 구비되는 스마트 모바일 단말의 메모리를 이용할 수 있음은 당연하다.In addition, the memory 150 includes a threshold value set in advance for the frequency of use, the frequency of use for each GUI component, a method (algorithm) for allocating a plurality of threads related to each GUI component to each core, and the like. It performs a function of storing various data (or information) necessary for the operation of the consumption optimization apparatus 100 . In this case, the memory 150 may be provided by itself in the energy consumption optimization apparatus 100 . However, it is natural that the energy consumption optimization device 100 does not include the memory 150 itself, but may use the memory of the smart mobile terminal provided with the energy consumption optimization device 100 .

도 6은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비를 최적화하는 절차를 나타낸 흐름도이다.6 is a flowchart illustrating a procedure for optimizing energy consumption of a smart mobile terminal having a big.LITTLE multi-core structure based on user experience according to an embodiment of the present invention.

도 6에 도시한 바와 같이, 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비를 최적화하는 절차는 우선, 에너지 소비 최적화 장치(100)는 각 응용프로그램에 대한 GUI 컴포넌트의 사용자 경험(사용빈도)을 검사하는 GUI 컴포넌트 검사 단계를 수행한다(S110).As shown in FIG. 6 , the procedure for optimizing the energy consumption of the smart mobile terminal of the big.LITTLE multi-core structure based on the user experience according to an embodiment of the present invention is first, the energy consumption optimization apparatus 100 is each A GUI component inspection step of inspecting the user experience (frequency of use) of the GUI component for the application is performed (S110).

한편, 각 GUI 컴포넌트는 각 응용프로그램에 대한 화면출력, 사용자 입력 또는 이들의 조합을 포함한 액티비티를 담당하기 위한 것임은 상술한 바와 같다.Meanwhile, as described above, each GUI component is in charge of an activity including a screen output for each application program, a user input, or a combination thereof.

다음으로 에너지 최적화 장치(100)는 검사한 결과 GUI 컴포넌트의 사용빈도(즉, 사용자 경험)가 사전에 설정한 임계값을 초과(S120)하면, 상기 액티비티를 구동하기 위한 해당 GUI 컴포넌트의 GUI 처리 스레드를 빅코어(210)에 우선 할당하는 GUI 처리 스레드 코어 할당 단계를 수행한다(S130). 이때, 상기 GUI 처리 스레드 코어 할당 단계는 상기 GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값 이하(S120)이면, 해당 GUI 컴포넌트의 GUI 처리 스레드를 리들코어(220)에 우선 할당한다(S131).Next, as a result of the inspection, the energy optimization apparatus 100 determines that the GUI component's usage frequency (ie, user experience) exceeds a preset threshold (S120), a GUI processing thread of the corresponding GUI component for driving the activity. A GUI processing thread core allocation step of first allocating to the big core 210 is performed (S130). In this case, in the step of allocating the GUI processing thread core, if the frequency of use of the GUI component is equal to or less than a preset threshold value (S120), the GUI processing thread of the GUI component is first allocated to the riddle core 220 (S131).

즉, 에너지 최적화 장치(100)는 사용자가 GUI 컴포넌트를 이용한 사용자 경험에 따른 사용빈도에 따라 해당 GUI 컴포넌트의 적어도 하나 이상의 GUI 처리 스레드를 빅코어(210) 혹은 리틀코어(220)에 할당하는 것이다.That is, the energy optimization apparatus 100 allocates at least one GUI processing thread of the GUI component to the big core 210 or the little core 220 according to the frequency of use according to the user's experience using the GUI component.

다음으로 에너지 소비 최적화 장치(100)는 특정 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생(S140)하고, 해당 GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값을 초과(S150)하면, 상기 입력 이벤트에 대한 이벤트 처리를 위한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210)에 할당하는 이벤트 처리 스레드 코어 할당 단계를 수행한다(S160).Next, the energy consumption optimization apparatus 100 responds to the input event when an input event by the user occurs in a specific GUI component (S140) and the frequency of use of the GUI component exceeds a preset threshold value (S150). An event processing thread core assignment step of allocating at least one event processing thread for event processing to the big core 210 is performed (S160).

다음으로 에너지 소비 최적화 장치(100)는 입력 이벤트에 대한 이벤트 처리가 완료(S170)되면, 빅코어(210) 혹은 리틀코어(220)에 대한 해당 GUI 컴포넌트의 이벤트 처리 스레드의 할당을 해지하는 코어 해지 단계(S180)를 수행하고, 해당 GUI 컴포넌트의 사용자 경험(사용빈도)을 누적하여 카운트하는 사용자 경험 카운트 단계를 수행한다(S190).Next, when the energy consumption optimization apparatus 100 completes the event processing for the input event ( S170 ), the core release that cancels the allocation of the event processing thread of the corresponding GUI component to the big core 210 or the little core 220 is completed ( S170 ). Step S180 is performed, and a user experience count step of accumulating and counting user experiences (frequency of use) of the corresponding GUI component is performed (S190).

이하에서는, 본 발명의 에너지 최적화 장치(100)의 성능을 검증한 결과를 상세히 설명하도록 한다. 상기 성능을 검증하기 위한 시뮬레이션을 수행하여 상기 에너지 최적화 장치(100)의 성능을 평가하였다.Hereinafter, a result of verifying the performance of the energy optimization apparatus 100 of the present invention will be described in detail. The performance of the energy optimization device 100 was evaluated by performing a simulation to verify the performance.

또한 4개의 빅코어와 4개의 리틀코어로 구성된 스마트 모바일 단말을 시뮬레이션(실험) 대상으로 하였으며, 실제 환경에 대한 모사를 위해 상기 빅코어의 처리속도는 1.8GHz로, 에너지 소모는 초당 0.57μJ로, 리틀코어의 처리속도는 1.4GHz로 에너지 소모는 초당 0.24μJ로 실험 파라미터로 설정하였다.In addition, a smart mobile terminal composed of 4 big cores and 4 little cores was subjected to simulation (experiment). For simulating the real environment, the processing speed of the big core was 1.8 GHz, and the energy consumption was 0.57 μJ per second, The processing speed of the Little Core was set at 1.4 GHz and the energy consumption was set as 0.24 μJ per second as experimental parameters.

또한 각각의 GUI 컴포넌트들은 각 별도의 스레드에서 동작하며, GUI 처리 스레드는 상시 동작하므로, 응용프로그램이 포그라운드인 경우 지속적인 CPU 점유가 발생한다.In addition, each GUI component operates in a separate thread, and the GUI processing thread is always operated, so that when an application program is in the foreground, continuous CPU occupation occurs.

또한 각 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생할 경우, 이벤트 핸들러와 등록된 프로시져들의 동작을 위한 이벤트 처리 스레드가 추가로 구동되며, 각 GUI 컴포넌트별로 하나의 이벤트 처리 스레드가 추가되어 실행되는 것으로 가정하였다. 또한 이벤트 처리 스레드의 작업량은 GUI 처리 스레드의 작업량의 배수(예: 3배 내지 9배)로 가정하였다.In addition, when an input event by the user occurs in each GUI component, an event processing thread for the operation of the event handler and registered procedures is additionally driven, and it is assumed that one event processing thread is added and executed for each GUI component. . In addition, the workload of the event processing thread was assumed to be a multiple (eg, 3 to 9 times) of the workload of the GUI processing thread.

또한 이벤트의 발생은 도착률이 λ인 포아송 프로세스(poisson process)를 따르며, 한 번의 실험은 10,000초간 진행하였고, 총 100번을 반복하여 평균을 구했다. 측정하는 에너지 소비량은 시뮬레이션 시간(즉, 10,000초) 동안 소비된 총 에너지를 mJ 단위로 표현하였다.In addition, the occurrence of the event follows the poisson process with arrival rate λ, and one experiment was performed for 10,000 seconds, and the average was obtained by repeating a total of 100 times. The measured energy consumption was expressed in mJ as the total energy consumed during the simulation time (ie, 10,000 seconds).

또한 성능 평가를 위해서 현재 안드로이드 플랫폼에서 주로 사용되고 있는Legacy 방법(종래 기술)과 본 발명의 코어 할당 방법의 에너지 소비량과 대기 시간을 비교하였다.In addition, for performance evaluation, the energy consumption and standby time of the legacy method (conventional technology) currently mainly used in the Android platform and the core allocation method of the present invention were compared.

한편, 종래 기술(Legacy 방법)은 GUI 컴포넌트의 화면출력과 동작을 담당하는 스레드는 빅코어에 우선 할당하며, GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생되면 미리 등록된 이벤트 핸들러와 프로시져를 당담하는 이벤트 처리 스레드를 우선순위와 작업의 양에 따라 빅코어 혹은 리틀코어 할당이 결정된다. 단, 본 실험에서는 리틀코어 우선으로 가정하였다.Meanwhile, in the prior art (Legacy method), the thread responsible for the screen output and operation of the GUI component is first assigned to Big Core, and when an input event by the user occurs in the GUI component, an event in charge of the pre-registered event handler and procedure The allocation of a processing thread to a big core or a little core is determined according to the priority and the amount of work. However, in this experiment, little core priority was assumed.

도 7은 본 발명의 일 실시예에 따른 에너지 소비에 대한 성능을 종래기술과 비교한 도면이다.7 is a diagram comparing performance with respect to energy consumption according to an embodiment of the present invention with that of the prior art.

도 7에 도시한 바와 같이, 사용자가 GUI 컴포넌트에 입력 이벤트를 발생시켰을 때, GUI 처리 스레드에서 수행하는 시간과 GUI 컴포넌트의 이벤트 처리를 위해 등록된 프로시져들을 수행하는 시간의 비율(즉, 프로시져/GUI 컴포넌트 execution time ratio)을 1:3에서 1:9까지 변화시켜 가면서 종래기술과 본 발명이 적용된 스마트 모바일 단말의 에너지 소모량을 측정하여 에너지 소비에 대한 성능을 비교하였다.As shown in FIG. 7 , when the user generates an input event in the GUI component, the ratio of the time executed by the GUI processing thread to the time executing the procedures registered for event processing of the GUI component (ie, procedure/GUI) While changing the component execution time ratio) from 1:3 to 1:9, the energy consumption of the smart mobile terminal to which the prior art and the present invention is applied was measured to compare the performance on energy consumption.

도 7을 보면, 본 발명이 적용된 스마트 모마일 단말은 종래기술이 적용된 스마트 모바일 단말에 비해 전반적으로 적은 에너지 소모량을 나타내었으며, 최대 40%의 에너지 절약효과를 보임을 알 수 있다. 단, 상기 비율이 커질수록 본 발명과 종래기술에서 모두 에너지 소모량이 증가하였는데, 종래기술의 증가폭이 적은 이유는 구조상 최대치(즉, 빅코어로만 수행한 경우)에 가까워 졌기 때문이다.Referring to FIG. 7 , it can be seen that the smart mobile terminal to which the present invention is applied has an overall lower energy consumption compared to the smart mobile terminal to which the prior art is applied, and shows an energy saving effect of up to 40%. However, as the ratio increased, the energy consumption increased in both the present invention and the prior art, and the reason for the small increase in the prior art is because the structure approaches the maximum value (ie, when only the big core is performed).

도 8은 본 발명의 일 실시예에 따른 이벤트 처리의 응답시간에 대한 성능을 종래기술과 비교한 도면이다.8 is a diagram comparing the performance of the response time of event processing according to an embodiment of the present invention with that of the prior art.

도 8에 도시한 바와 같이, 사용자가 GUI 컴포넌트에 입력 이벤트를 발생시켰을 때, GUI 처리 스레드에서 수행하는 시간과 GUI 컴포넌트의 이벤트 처리를 위해 등록된 프로시져들을 수행하는 시간의 비율(즉, 프로시져/GUI 컴포넌트 execution time ratio)을 1:3에서 1:9까지 변화시켜 가면서 종래기술과 본 발명이 적용된 스마트 모바일 단말의 이벤트 처리에 대한 평균 응답시간을 측정하여 이벤트 처리에 대한 응답시간에 대한 성능을 비교하였다.As shown in FIG. 8 , when the user generates an input event in the GUI component, the ratio of the time performed by the GUI processing thread to the time performed by the procedures registered for event processing of the GUI component (ie, procedure/GUI) By changing the component execution time ratio) from 1:3 to 1:9, the average response time for event processing of the smart mobile terminal to which the prior art and the present invention is applied was measured to compare the performance on response time for event processing. .

도 8을 보면, 본 발명이 적용된 스마트 모마일 단말은 종래기술이 적용된 스마트 모바일 단말에 비해 전반적으로 더 작은 응답시간을 나타내었으며 종래기술보다 최대 20%의 응답시간에 대한 단축효과를 보임을 알 수 있다. 단, 상기 비율이 커질수록 본 발명과 종래기술의 차이가 커짐을 볼 수 있는데, 이러한 결과는 본 발명에서 GUI 처리 스레드보다 이벤트 처리 스레드를 빅코어에 할당하는 경향이 크기 때문이다.Referring to FIG. 8 , it can be seen that the smart mobile terminal to which the present invention is applied has an overall smaller response time compared to the smart mobile terminal to which the prior art is applied, and it can be seen that the response time is shortened by up to 20% compared to the prior art. have. However, as the ratio increases, it can be seen that the difference between the present invention and the prior art increases. This is because the present invention tends to allocate the event processing thread to the big core rather than the GUI processing thread.

도 7 및 도 8을 참조하여 설명한 것과 같이, 종래기술의 코어 할당 방법은 본 발명과 대비하여 에너지 비효율성과 응답시간의 지연문제가 발생함을 알 수 있다. 또한 실제 환경을 반영한 시뮬레이션(실험)을 통해 본 발명의 에너지 소비 최정화 장치(100)가 적용된 스마트 모바일 단말의 에너지 효율 면에서 종래기술 대비 최대 40%를 향상시켰고, 응답시간 단축 면에서도 최대 20%를 개선시켰음을 알 수 있다.As described with reference to FIGS. 7 and 8 , it can be seen that the prior art core allocation method has problems of energy inefficiency and response time delay compared to the present invention. In addition, through a simulation (experiment) reflecting the real environment, the energy efficiency of the smart mobile terminal to which the energy consumption optimization device 100 of the present invention is applied is improved by up to 40% compared to the prior art, and by up to 20% in terms of shortening the response time It can be seen that improved

이처럼, 본 발명은 빅코어와 리틀코어로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말에서 사용자 경험을 활용하여 GUI 컴포넌트와 관련된 복수의 스레드를 빅코어 혹은 리틀코어에 효율적으로 할당하기 때문에, 스마트 모바일 단말의 에너지 소비를 최적화할 수 있으며, 이벤트 발생에 대한 응답시간을 단축시킬 수 있도록 하는 장점이 있다.As such, the present invention efficiently allocates a plurality of threads related to a GUI component to a big core or a little core by utilizing user experience in a smart mobile terminal using a multi-core structure composed of a big core and a little core, so a smart mobile terminal It has the advantage of optimizing energy consumption and shortening the response time to event occurrence.

이상에서와 같이 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 판단되어야 할 것이다.As described above, the present invention has been described with reference to the embodiments shown in the drawings, which are merely exemplary, and those of ordinary skill in the art can make various modifications and equivalent other embodiments therefrom. You will understand that it is possible. Therefore, the technical protection scope of the present invention should be judged by the following claims.

100: 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 110: GUI 컴포넌트 검사부
120: 사용자 경험 카운트부 130: 코어 할당부
131: GUI 처리 스레드 코어 할당부 132: 이벤트 처리 스레드 코어 할당부
140: 코어 해지부 150: 메모리
200: 프로세서 210: 빅코어
220: 리틀코어
100: Device for optimizing energy consumption of smart mobile terminal of big.LITTLE multi-core structure based on user experience 110: GUI component inspection unit
120: user experience count unit 130: core allocation unit
131: GUI processing thread core allocation unit 132: Event processing thread core allocation unit
140: core release 150: memory
200: processor 210: big core
220: little core

Claims (10)

빅코어 및 리틀코어로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말의 에너지 소비 최적화 장치에 있어서,
GUI 컴포넌트(위젯)에 대한 사용자 경험을 검사하는 GUI 컴포넌트 검사부;
상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 GUI 처리 스레드 코어 할당부; 및
상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 이벤트 처리 스레드 코어 할당부;를 포함하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 장치.
In the energy consumption optimization device of a smart mobile terminal using a multi-core structure consisting of a big core and a little core,
a GUI component inspection unit that inspects user experience for a GUI component (widget);
a GUI processing thread core allocator for allocating a GUI processing thread for processing the operation of the GUI component to the big core or the little core according to the inspection result; and
When an input event occurs in the GUI component, an event processing thread core allocator for allocating an event processing thread for processing the input event to the big core or the little core according to the inspection result; Energy consumption optimization device for smart mobile terminals.
청구항 1에 있어서,
상기 GUI 컴포넌트 검사부는,
상기 GUI 컴포넌트에 대한 사용빈도를 검사함으로써 상기 GUI 컴포넌트에 대한 사용자 경험을 검사하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 장치.
The method according to claim 1,
The GUI component inspection unit,
The apparatus for optimizing energy consumption of a smart mobile terminal, characterized in that the user experience of the GUI component is checked by examining the frequency of use of the GUI component.
청구항 2에 있어서,
상기 GUI 처리 스레드 코어 할당부는,
상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면, 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면, 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 장치.
3. The method according to claim 2,
The GUI processing thread core allocating unit,
When the frequency of use of the GUI component exceeds a preset threshold, the GUI processing thread is first allocated to the big core. Energy consumption optimization device of a smart mobile terminal, characterized in that the priority is allocated to the little core.
청구항 2에 있어서,
상기 이벤트 처리 스레드 코어 할당부는,
상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하고, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면 해당 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 장치.
3. The method according to claim 2,
The event processing thread core allocating unit,
When an input event by a user occurs in the GUI component and the frequency of use of the GUI component exceeds a preset threshold, an event processing thread for processing the input event is first allocated to the Big Core, If the frequency of use is less than or equal to a preset threshold, the device for optimizing energy consumption of a smart mobile terminal, characterized in that the event processing thread is first allocated to the little core.
청구항 1에 있어서,
상기 에너지 소비 최적화 장치는,
상기 빅코어 혹은 리틀코어로 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지부; 및
상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트부;를 더 포함하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 장치.
The method according to claim 1,
The energy consumption optimization device,
a core release unit that cancels assignment of the event processing thread to the big core or the little core when the processing of the input event is completed by the event processing thread allocated to the big core or the little core; and
Each time the user uses the GUI component, a user experience counting unit for accumulating and counting the frequency of use, which is a user experience for the GUI component, the energy consumption optimization device for the smart mobile terminal further comprising a.
빅코어 및 리틀코어로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말의 에너지 소비 최적화 방법에 있어서,
GUI 컴포넌트(위젯)에 대한 사용자 경험을 검사하는 GUI 컴포넌트 검사 단계;
상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 GUI 처리 스레드 코어 할당단계; 및
상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 이벤트 처리 스레드 코어 할당 단계;를 포함하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 방법.
In the energy consumption optimization method of a smart mobile terminal using a multi-core structure consisting of a big core and a little core,
GUI component inspection step of inspecting user experience for the GUI component (widget);
a GUI processing thread core allocating step of allocating a GUI processing thread for processing the operation of the GUI component to the big core or the little core according to the inspection result; and
When an input event occurs in the GUI component, an event processing thread core assignment step of allocating an event processing thread for processing the input event to the big core or the little core according to the inspection result; A method for optimizing energy consumption of smart mobile terminals.
청구항 6에 있어서,
상기 GUI 컴포넌트 검사 단계는,
상기 GUI 컴포넌트에 대한 사용빈도를 검사함으로써 상기 GUI 컴포넌트에 대한 사용자 경험을 검사하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 방법.
7. The method of claim 6,
The GUI component inspection step includes:
The method for optimizing energy consumption of a smart mobile terminal, characterized in that the user experience of the GUI component is checked by examining the frequency of use of the GUI component.
청구항 7에 있어서,
상기 GUI 처리 스레드 코어 할당 단계는,
상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면, 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면, 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 방법.
8. The method of claim 7,
The GUI processing thread core allocation step includes:
When the frequency of use of the GUI component exceeds a preset threshold, the GUI processing thread is first allocated to the big core. A method of optimizing energy consumption of a smart mobile terminal, characterized in that the priority is allocated to the little core.
청구항 7에 있어서,
상기 이벤트 처리 스레드 코어 할당 단계는,
상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하고, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면 해당 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 방법.
8. The method of claim 7,
The event processing thread core allocation step includes:
When an input event by a user occurs in the GUI component and the frequency of use of the GUI component exceeds a preset threshold, an event processing thread for processing the input event is first allocated to the Big Core, The method for optimizing energy consumption of a smart mobile terminal, characterized in that if the frequency of use is less than or equal to a preset threshold, the event processing thread is first allocated to the little core.
청구항 6에 있어서,
상기 에너지 소비 최적화 방법은,
상기 빅코어 혹은 리틀코어로 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지 단계; 및
상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트 단계;를 더 포함하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 방법.
7. The method of claim 6,
The energy consumption optimization method comprises:
a core release step of canceling assignment of the event processing thread to the big core or the little core when the processing of the input event is completed by the event processing thread allocated to the big core or the little core; and
Each time the user uses the GUI component, a user experience counting step of accumulating and counting the frequency of use that is the user experience for the GUI component;
KR1020210041113A 2021-03-30 2021-03-30 APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME KR102630955B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210041113A KR102630955B1 (en) 2021-03-30 2021-03-30 APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210041113A KR102630955B1 (en) 2021-03-30 2021-03-30 APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME

Publications (2)

Publication Number Publication Date
KR20220135443A true KR20220135443A (en) 2022-10-07
KR102630955B1 KR102630955B1 (en) 2024-01-29

Family

ID=83595839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210041113A KR102630955B1 (en) 2021-03-30 2021-03-30 APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME

Country Status (1)

Country Link
KR (1) KR102630955B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140143073A (en) * 2013-06-05 2014-12-15 삼성전자주식회사 Electronic device and method for providing information of battery in the electronic device
KR20200060421A (en) * 2017-10-13 2020-05-29 후아웨이 테크놀러지 컴퍼니 리미티드 Resource management method and terminal device
KR20200107251A (en) * 2019-03-07 2020-09-16 남서울대학교 산학협력단 Method for energy efficient core selection of real-time tasks on a heterogeneous multi-core architecture for smart mobile device and the apparatus thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140143073A (en) * 2013-06-05 2014-12-15 삼성전자주식회사 Electronic device and method for providing information of battery in the electronic device
KR20200060421A (en) * 2017-10-13 2020-05-29 후아웨이 테크놀러지 컴퍼니 리미티드 Resource management method and terminal device
KR20200107251A (en) * 2019-03-07 2020-09-16 남서울대학교 산학협력단 Method for energy efficient core selection of real-time tasks on a heterogeneous multi-core architecture for smart mobile device and the apparatus thereof

Also Published As

Publication number Publication date
KR102630955B1 (en) 2024-01-29

Similar Documents

Publication Publication Date Title
CN111052149B (en) Method and apparatus for determining memory requirements in a network
US9135741B2 (en) Interference-driven resource management for GPU-based heterogeneous clusters
CN101894047B (en) Kernel virtual machine scheduling policy-based implementation method
US11620510B2 (en) Platform for concurrent execution of GPU operations
US9454401B2 (en) Resource allocation method and apparatus of GPU
US20120256922A1 (en) Multithreaded Processor and Method for Realizing Functions of Central Processing Unit and Graphics Processing Unit
US20080098395A1 (en) System and method of expediting certain jobs in a computer processing system
Kang et al. Lalarand: Flexible layer-by-layer cpu/gpu scheduling for real-time dnn tasks
US20150234640A1 (en) System and Method for Isolating I/O Execution via Compiler and OS Support
JP2021121959A (en) Scheduling method for deep layer learning inference engine, device, equipment and medium
US10037225B2 (en) Method and system for scheduling computing
JP2007316710A (en) Multiprocessor system, workload management method
Padoin et al. Managing power demand and load imbalance to save energy on systems with heterogeneous CPU speeds
CN111459648B (en) Heterogeneous multi-core platform resource optimization method and device for application program
US9436505B2 (en) Power management for host with devices assigned to virtual machines
KR20220135443A (en) APPARATUS FOR OPTIMIZING ENERGY CONSUMPTION OF SMART MOBILE TERMINAL OF big.LITTLE MULTI CORES ARCHITECTURE BASED ON USER EXPERIENCE AND METHOD USING THE SAME
CN113495787A (en) Resource allocation method, device, storage medium and electronic equipment
RU2450330C2 (en) Hardware-implemented method of executing programs
KR102204032B1 (en) Method for energy efficient core selection of real-time tasks on a heterogeneous multi-core architecture for smart mobile device and the apparatus thereof
CN115756866A (en) Load balancing method, device and storage medium
KR102224446B1 (en) Gpgpu thread block scheduling extension method and apparatus
CN113641476A (en) Task scheduling method, game engine, equipment and storage medium
Zhu et al. STARS: Startup-time-aware resource provisioning and real-time task scheduling in clouds
Nam et al. An energy-efficient task scheduler for mobile web browsing
Iturbe et al. ATB: Area-time response balancing algorithm for scheduling real-time hardware tasks

Legal Events

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