KR102630955B1 - 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법 - Google Patents

사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법 Download PDF

Info

Publication number
KR102630955B1
KR102630955B1 KR1020210041113A KR20210041113A KR102630955B1 KR 102630955 B1 KR102630955 B1 KR 102630955B1 KR 1020210041113 A KR1020210041113 A KR 1020210041113A KR 20210041113 A KR20210041113 A KR 20210041113A KR 102630955 B1 KR102630955 B1 KR 102630955B1
Authority
KR
South Korea
Prior art keywords
core
processing thread
gui
big
little
Prior art date
Application number
KR1020210041113A
Other languages
English (en)
Other versions
KR20220135443A (ko
Inventor
임성화
Original Assignee
남서울대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 남서울대학교 산학협력단 filed Critical 남서울대학교 산학협력단
Priority to KR1020210041113A priority Critical patent/KR102630955B1/ko
Publication of KR20220135443A publication Critical patent/KR20220135443A/ko
Application granted granted Critical
Publication of KR102630955B1 publication Critical patent/KR102630955B1/ko

Links

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

본 발명은 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법에 관한 것으로, 전력소모가 크고 처리속도가 빠른 빅코어(big core)와 전력소모가 낮고 처리속도가 느린 리틀코어(LITTLE core)로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말의 GUI 환경에서, GUI 컴포넌트에 대한 사용자 경험을 활용하여 상기 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 효율적으로 할당함으로써 스마트 모바일 단말의 에너지 소비를 최적화함과 동시에 상기 GUI 컴포넌트의 응답시간을 줄일 수 있도록 하는 장치 및 그 방법에 관한 것이다.

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}
본 발명은 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법에 관한 것으로, 더욱 상세하게는 전력소모가 크고 처리속도가 빠른 빅코어(big core)와 전력소모가 낮고 처리속도가 느린 리틀코어(LITTLE core)로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말의 GUI 환경에서, GUI 컴포넌트에 대한 사용자 경험을 활용하여 상기 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 효율적으로 할당함으로써 스마트 모바일 단말의 에너지 소비를 최적화함과 동시에 상기 GUI 컴포넌트의 응답시간을 줄일 수 있도록 하는 장치 및 그 방법에 관한 것이다.
최근 산업기술과 정보통신기술의 급속한 발전으로 인해 하드웨어의 직접도와 병렬성이 높아짐에 따라 스마트폰과 같은 스마트 모바일 단말의 하드웨어 성능이 하루가 다르게 강력해지고 있다. 특히, 작업 처리량의 증가와 다양한 작업을 동시에 처리하려는 사용자의 요구가 커짐에 따라 스마트 모바일 단말에서도 멀티코어 구조가 필수적으로 탑재되고 있다.
그러나 하드웨어의 직접도와 병렬성이 높아짐에 따른 하드웨어 구조의 복잡성 증가와 증복도 심화는 스마트 모바일 단말에서 에너지 소비의 급증을 야기한다.
특히, 배터리에 크게 의존하는 스마트 모바일 단말의 경우, 새롭게 개발되는 하드웨어 칩의 전력소모량은 급격하게 증가하고 있으나 배터리 기술의 발전은 이에 부합하고 있지 못해 어느 때 보다도 스마트 모바일 단말에서의 에너지에 효율적인 하드웨어 운영 기법이 요구되고 있다.
이에 따라 최근에는 스마트 모바일 단말의 에너지 효율성을 높이기 위해 비대칭 멀티코어 구조가 제안되었으며, 현재 널리 사용되고 있는 비대칭 멀티코어 구조는 big.LITTLE 멀티코어 구조이다. 상기 big.LITTLE 멀티코어 구조는 처리속도가 빠르지만 에너지 소모량이 높은 빅(big)코어와, 에너지 소모량이 낮으나 처리속도가 상기 빅코어 보다 상대적으로 늦은 리틀(LITTLE)코어로 구성된다.
그러나 big.LITTLE 멀티코어 구조의 스마트 모바일 단말에서 에너지 효율이 높은 리틀코어의 활용도가 떨어지는 문제점이 있다. 이러한 문제점을 해결하기 위해 최근에는 응용프로그램 단계에서 멀티코어 할당에 참여하는 저전력 멀티코어 운영 방법에 대한 연구들이 활발하게 진행되고 있다.
한편, 현재 스마트 모바일 단말을 위한 안드로이드 플랫폼의 경우, 리눅스 운영체제 위에 네이티브(native) 라이브러리 스택과 안드로이드 런타임이 탑재되고, 그 위에 응용프로그램 프레임워크가 올라가며, 그 위에 비로소 응용프로그램 소프트웨어들이 구동되는 매우 복잡한 계층구조를 가진다. 이러한 복합한 계층구조에서는 소프트웨어 실행 시 다수의 내부적 시스템 콜의 호출이 수반되어야 하므로, 이에 따른 추가적인 에너지 소비가 발생한다.
또한 사용자와의 인터페이스 역할을 수행하는 GUI 처리 스레드(혹은 태스크)들의 경우, 사용자의 입력 성향 등과 같은 사용자 경험(user experience, UX)에 의한 에너지 소모도의 차이가 필연적으로 발생한다. 특히 사용자의 조작에 따라 애플리케이션 구동 중 화면 갱신이 발생할 경우 에너지 소모가 증가될 수 있으며, 화면의 색이나 패턴 혹은 배열에 따라서도 에너지 소모량이 달라질 수 있다.
특히 스마트 모바일 단말에서, 가장 널리 사용되는 안드로이드 플랫폼은 사용자 만족도를 높이기 위해 응용프로그램의 GUI 컴포넌트(위젯)와 관련한 스레드들에 대한 우선순위를 높게 설정하는 데, 이 경우 big.LITTLE 구조에서 항상 빅코어에 우선적으로 할당되는 현상이 발생한다. 그러나 일반적으로 응용프로그램은 구동 중 상당부분의 시간은 사용자의 입력이 있을 때까지 idle상태에 있는 것이 대부분이다. 따라서 빅코어에 상기 스레드들을 계속적으로 할당하는 것은 사용자 입력이 있을 때 까지 해당 프로세서(빅코어)를 지속적으로 점유하면서 에너지 소모를 유발하기 때문에 에너지 효율성이 떨어지는 문제점이 있다.
또한 안드로이드 플랫폼을 기준으로 각 응용프로그램의 화면은 하나의 액티비티(activity)로 구성되어 있으며, 액티비티에는 사용자의 입력과 화면출력을 동시에 담당하는 적어도 하나 이상의 GUI 컴포넌트(위젯)가 포함된다. 또한 상기 안드로이드 플랫폼은 상기 GUI 컴포넌트에 사용자에 의한 입력 이벤트가 발생하면, 개발자가 미리 정의해 놓은 후속작업들을 이벤트 핸들러를 통해 구동시킨다. 이 경우 안드로이드 플랫폼은 사용자 만족도를 위해 GUI 컴포넌트 구동을 위한 GUI 처리 스레드를 높은 우선순위를 가지도록 하여 빅코어에 우선적으로 할당한다. 이러한 경우 해당 액티비티가 스마트 모바일 단말의 포그라운드(foreground)에 위치하는 한, 지속적으로 에너지 소모량이 높은 빅코어를 계속 점유하며 에너지를 과도하게 소비하는 문제점이 발생할 수 있다.
또한 GUI 컴포넌트에서 입력 이벤트를 처리하여 이벤트 핸들러로 넘기는 작업보다 이벤트의 후속작업을 수행하는 프로시져(procedure)들의 작업내용과 작업시간이 상대적으로 크다. 그러나 안드로이드 플랫폼은 이러한 프로시져들을 담당하는 이벤트 처리 스레드들은 GUI 처리 스레드들 보다 상대적으로 낮은 우선순위를 가지도록 하여, 리틀코어에 우선적으로 할당하는 경향이 많다. 이는 이벤트에 대한 응답시간이 증가하는 문제점을 야기한다.
즉, 종래의 GUI 컴포넌트 구동과 이벤트 처리 방식을 위한 코어 할당 방식은 많은 에너지를 소모하면서도 오히려 사용자 응답시간을 증가(지연)시켜 사용자 만족도를 낮추는 문제점이 있는 것이다.
이에 따라 본 발명에서는 적어도 하나 이상의 빅코어 및 리틀코어 구조의 스마트 모바일 단말에서, GUI 컴포넌트의 구동을 위한 GUI 처리 스레드와, 이벤트 처리를 위한 이벤트 처리 스레드들을 사용자의 경험을 활용하여 빅코어 혹은 리틀코에 효율적으로 할당함으로써, 에너지의 효율성을 극대화하면서 동시에 이벤트 처리에 대한 응답시간을 현저하게 감소시킬 수 있도록 하는 방안을 제안하고자 한다.
즉, 본 발명은 GUI 컴포넌트를 이용한 사용자 경험인 상기 GUI 컴포넌트에 대한 사용빈도에 따라 상기 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 효율적으로 할당하여 에너지 소비를 최적화하고, 이벤트에 대한 응답시간을 최소화할 수 있도록 하는 방법을 제공하는 것이다.
다음으로 본 발명의 기술분야에 존재하는 선행기술에 대하여 간단하게 설명하고, 이어서 본 발명이 상기 선행기술에 비해서 차별적으로 이루고자 하는 기술적 사항에 대해서 기술하고자 한다.
먼저 비특허 문헌 "RAVEN: Perception-aware Optimization of Power Consumption for Mobile Games"는 모바일 단말에서 모바일 게임을 실행할 때 그래픽 화면의 프레임율에 따라 에너지 소모가 달라지는 것을 착안하여 게임 응용프로그램에서 높은 프레임율이 요구되지 않는 메뉴 화면 등에 대해서는 프레임율을 낮추어 에너지 소비를 줄이도록 하는 방안을 기재하고 있다.
즉, 상기 선행기술은 모바일 단말에의 에너지 소비를 줄이는 방법을 기재하고 있으나, 모바일 게임을 실행할 때 실제 액티브한 화면을 제외한 고정된 화면으로 표시되는 메뉴 등의 프레임율을 낮추어 그래픽을 처리하는 GPU(graphics processing unit)의 부하를 감소시켜 에너지 소비를 줄이도록 하는 것이다.
반면에 본 발명은 사용자 경험을 바탕으로 위젯과 같은 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 할당하여 스마트 모바일 단말의 에너지 소비를 최적화하기 위한 것으로, 양 발명은 구성, 목적 및 효과에 있어서 현저한 차이점이 있다.
또한 한국등록특허 제2166644호(2020.10.12.)는 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법에 관한 것으로, 복수의 빅코어와 스몰코어(Little core)를 포함하는 전자 시스템에 있어서, 빅코어의 온도 및 작업량에 따라 해당 빅코어에 상응하는 스몰코어 간의 스위칭을 수행하여 멀티 코어 프로세서에 대한 온도관리를 수행하는 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법에 관한 것이다.
상기 선행기술은 빅코어와 리틀코어를 포함하는 비대칭 멀티코어의 구조로 구성된 전자 시스템에서 각 코어의 온도를 관리하는 것일 뿐, 사용자 경험을 활용하여 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 또는 리틀코어에 각각 할당함으로써, 상기 비대칭 멀티코어 구조로 구성된 스마트 모바일 단말의 에너지 소비를 최적화하고, 이벤트 처리에 대한 응답기간을 최소화하는 본 발명의 기술적 특징을 전혀 기재하거나 시사 혹은 그 어떠한 암시도 없다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 빅코어와 리틀코어로 구성된 멀티코어 구조의 중앙처리장치(프로세서)를 사용하는 스마트 모바일 단말의 에너지 소비를 최적화하고 이벤트 처리에 대한 응답시간을 최소화할 수 있도록 GUI 컴포넌트에 관련한 복수의 스레드를 상기 빅코어 혹은 리틀코어에 효율적으로 할당하는 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법을 제공하는 것을 그 목적으로 한다.
또한 본 발명은 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 토대로 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 또는 리틀코어에 효율적으로 할당하여 스마트 모마일 단말의 에너지 소비를 현저하게 줄이고, 이벤트 처리에 대한 시간을 최소화하는 장치 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.
또한 본 발명은 사용자 경험에 따른 스마트 모바일 단말에 설치되는 각 응용프로그램에 대한 GUI 컴포넌트에 대한 사용빈도에 따라, 상기 GUI 컴포넌트 구동을 위한 GUI 처리 스레드를 빅코어 혹은 리틀코어에 우선 할당하고, 상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생되면, 상기 사용빈도에 따라 상기 입력 이벤트에 대한 처리를 수행하는 이벤트 처리 스레드를 빅코어 혹은 리틀코어로 할당하여, 상기 GUI 컴포넌트가 상기 스마트 모바일 단말의 포그라운드(foreground)에 계속 상주하더라도 상기 스마트 모바일 단말의 에너지 소비와 이벤트 대한 응답시간을 동시에 줄일 수 있도록 하는 장치 및 그 방법을 제공하는 것을 또 다른 목적으로 한다.
본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치는, GUI 컴포넌트(위젯)에 대한 사용자 경험을 검사하는 GUI 컴포넌트 검사부, 상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 GUI 처리 스레드 코어 할당부 및 상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 이벤트 처리 스레드 코어 할당부를 포함하는 것을 특징으로 한다.
또한 상기 GUI 컴포넌트 검사부는, 상기 GUI 컴포넌트에 대한 사용빈도를 검사함으로써 상기 GUI 컴포넌트에 대한 사용자 경험을 검사하는 것을 특징으로 한다.
또한 상기 GUI 처리 스레드 코어 할당부는, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면, 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면, 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.
또한 상기 이벤트 처리 스레드 코어 할당부는, 상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하고, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면 해당 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.
또한 상기 에너지 소비 최적화 장치는, 상기 빅코어 혹은 리틀코어로 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지부및 상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트부를 더 포함하는 것을 특징으로 한다.
아울러 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 방법은, GUI 컴포넌트(위젯)에 대한 사용자 경험을 검사하는 GUI 컴포넌트 검사 단계, 상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 GUI 처리 스레드 코어 할당단계 및 상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어로 할당하는 이벤트 처리 스레드 코어 할당 단계를 포함하는 것을 특징으로 한다.
또한 상기 GUI 컴포넌트 검사 단계는, 상기 GUI 컴포넌트에 대한 사용빈도를 검사함으로써 상기 GUI 컴포넌트에 대한 사용자 경험을 검사하는 것을 특징으로 한다.
또한 상기 GUI 처리 스레드 코어 할당 단계는, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면, 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면, 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.
또한 상기 이벤트 처리 스레드 코어 할당 단계는, 상기 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하고, 상기 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값을 초과하면 해당 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어에 우선 할당하며, 상기 사용빈도가 사전에 설정한 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하는 것을 특징으로 한다.
또한 상기 에너지 소비 최적화 방법은, 상기 빅코어 혹은 리틀코어로 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지 단계 및 상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트 단계를 더 포함하는 것을 특징으로 한다.
이상에서와 같이 본 발명의 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법에 따르면 사용자 경험을 기반으로 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어 혹은 리틀코어에 각각 할당함으로써, 상기 GUI 컴포넌트가 상기 스마트 모바일 단말의 포그라운드에 계속 상주하더라도 해당 스마트 모바일 단말의 에너지 소비를 줄이고 이벤트에 대한 응답시간을 줄일 수 있도록 하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 GUI 환경에서 GUI 컴포넌트가 동작하는 구조를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 하나의 GUI 컴포넌트가 동작하는 구조를 상세히 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 동작을 설명하기 위해 나타낸 개념도이다.
도 4는 본 발명의 일 실시예에 따른 GUI 컴포넌트에 관련한 복수의 스레드를 멀티코어에 할당하는 방법을 설명하기 위해 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 구성을 나타낸 블록도이다.
도 6은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비를 최적화하는 절차를 나타낸 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 에너지 소비에 대한 성능을 종래기술과 비교한 도면이다.
도 8은 본 발명의 일 실시예에 따른 이벤트 처리의 응답시간에 대한 성능을 종래기술과 비교한 도면이다.
이하, 첨부한 도면을 참조하여 본 발명의 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법과 관련된 바람직한 실시 예를 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 또한 본 발명의 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는 것이 바람직하다.
도 1은 본 발명의 일 실시예에 따른 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 GUI 환경에서 GUI 컴포넌트가 동작하는 구조를 나타낸 도면이다.
도 1에 도시한 바와 같이, 본 발명의 일 실시예에 따른 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 GUI 환경에서, 응용프로그램에 대한 적어도 하나 이상의 GUI 컴포넌트가 동작하는 구조는 GUI 컴포넌트의 화면출력, 사용자 입력 이벤트 및 동작을 등을 담당하는 GUI 처리 스레드와, 상기 GUI 컴포넌트에 사용자 입력에 의한 이벤트가 발생하였을 때, 해당 이벤트를 처리하기 위해 개발자가 사전에 정의해 놓은 프로시져(procedure)들을 실행하여 상기 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드로 구성된다.
GUI 컴포넌트의 이벤트 처리에 따른 사용자에 대한 최종 응답시간(Response Time)은 GUI 처리 스레드와 이벤트 처리 스레드의 동작이 완료되는 시점(즉, 각 스레드의 동작 시작과 완료되는 시간 사이의 시간 구간)이 된다.
여기서 각 GUI 컴포넌트는 스마트 모바일 단말에 각각 설치되는 각 응용프로그램의 액티비티(activity)를 담당하는 위젯을 의미한다. 상기 액티비티는 입력 이벤트를 위한 사용자 입력과 화면출력으로 구성된다. 이때, 상기 각 GUI 컴포넌트는 상기 사용자 입력과 화면출력을 동시에 담당하며, 상기 사용자 입력과 화면출력은 GUI 처리 스레드에 의해 구동된다.
또한 프로시져는 이벤트(예: 특정 정보 출력, 로그인 등)를 처리하기 위한 일련의 과정을 상기 각 응용프로그램의 개발자가 사전에 정의해놓은 것으로, 상기 프로시져는 이벤트 처리 스레드에 의해 실행된다.
이하에서는, 하나의 GUI 컴포넌트를 일예로 하여, GUI 컴포넌트가 동작하는 구조를 보다 상세히 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 하나의 GUI 컴포넌트가 동작하는 구조를 상세히 나타낸 도면이다.
도 2에 도시한 바와 같이, GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하면 이벤트 핸들러가 동작하여, 이벤트 처리 스레드는 해당 응용프로그램의 개발자가 사전에 정의하여 등록해 놓은 프로시져들 중 상기 입력 이벤트에 대한 프로시져를 실행시킴으로써, 상기 입력 이벤트에 대한 이벤트를 처리한다.
이때, 프로시져는 각 응용프로그램 마다 하나 일 수도 있으며, 도 2에 나타낸 것과 같이 여러 개의 프로시져가 직렬성과 병렬성을 갖고 실행될 수 있다(도 2는 n개의 병렬성과 m개의 직렬성을 가짐).
또한 GUI 컴포넌트의 화면동작과 사용자 입력을 포함하는 GUI 컴포넌트의 구동을 처리하는 GUI 처리 스레드는 사용자 입력을 기다려서 처리해야 하므로, 상시 동작해야 한다. 그러므로 응용프로그램(즉, 액티비티)이 스마트 모바일 단말의 포그라운드에 있을 경우, 상기 애플리케이션의 사용여부에 상관없이 해당 애플리케이션의 화면출력을 구동하기 위한 GUI 처리 스레드는 항상 프로세서를 점유한다.
반면에 이벤트 핸들러와 이에 예속된 각 프로시져들을 담당하는 적어도 하나 이상의 이벤트 처리 스레드는 해당 GUI 컴포넌트에 사용자 입력에 의한 입력 이벤트가 발생한 경우, 해당 입력 이벤트에 따른 이벤트를 처리하기 위해 생성 또는 구동되어 프로세서에 할당된다.
여기서 본 발명의 스마트 모바일 단말은 big.LITTLE 멀티코어 구조를 기반으로 하므로 프로세서(CPU)는 적어도 하나 이상의 빅코어 및 리틀코어로 구성되는 멀티코어 프로세서이다.
이때, big.LITTLE 멀티코어 구조의 스마트 모바일 단말에서, 종래의 big.LITTLE 코어 할당 방식은 빠른 사용자 응답성을 제공하기 위해 GUI 처리 쓰레드들을 빅코어에 우선적으로 할당한다.
예를 들어, 도 1에 도시한 3개의 GUI 컴포넌트를 구동하기 위한 GUI 처리 스레드는 해당 응용프로그램(즉, 응용프로그램의 액티비티)이 포그라운드에 있을 경우, 사용여부와 상관없이 프로세서를 계속 점유하므로, 최소 3개의 빅코어가 계속 동작해야 한다. 이는 상기 스마트 모바일 단말의 에너지 효율성이 떨어지는 문제가 있다.
또한 사용자가 입력 이벤트를 발생시킨 후, 이벤트 처리에 대한 응답시간은 GUI 처리 스레드와 이벤트 처리를 위해 사전에 정의되어 등록된 적어도 하나 이상의 프로시져들을 실행시켜 처리하는 이벤트 처리 스레드들이 모두 완료할 때까지의 시간을 의미한다. 이 경우, GUI 처리 스레드보다는 이벤트 처리 스레드에 의한 프로시져들의 실행이 상대적으로 오랜 시간이 소요되는 것이 일반적이다.
즉, 종래의 big.LITTLE 코어할당 방식은 에너지 비효율성과 응답시간의 지연문제가 발생하는 문제점이 있는 것이다.
따라서 본 발명에서는 종래의 big.LITTLE 코어 할당 방식의 문제점을 개선하기 위해 big.LITTLE 멀티코어 기반의 스마트 모바일 단말의 GUI 환경에서, GUI 컴포넌트에 관련한 각 스레드들을 GUI 컴포넌트에 대한 사용자 경험에 따라 빅코어 혹은 리틀코어에 효율적으로 할당하도록 하여 에너지 소비를 최적화하고 응답시간을 최소화할 수 있도록 하고자 한다.
이하에서는 GUI 컴포넌트에 관련한 복수의 스레드들을 빅코어 또는 리틀코어에 할당하는 방법을 설명하고자 한다.
도 3은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 동작을 설명하기 위해 나타낸 개념도이다.
도 3에 도시한 바와 같이, 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치(100)(이하, 에너지 소비 최적화 장치라 칭함)는 스마트 모바일 단말에 구비된다.
이때, GUI 컴포넌트에 관련한 복수의 스레드는 애플리케이션의 액티비티를 구동하기 위한 적어도 하나 이상의 GUI 처리 스레드와, 사용자의 입력 이벤트에 따른 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 포함하여 구성된다.
또한 스마트 모바일 단말은 적어도 하나 이상의 빅코어(210) 및 리틀코어(220)를 포함하는 프로세서(200)(즉, CPU)를 포함하여 구성된다.
즉, 에너지 소비 최적화 장치(100)는 빅코어(210) 및 리틀코어(220)로 구성된 멀티코어 구조의 스마트 모바일 단말에 구비되어, 해당 스마트 모바일 단말의 에너지 소비를 최적화하기 위한 것이다.
또한 에너지 소비 최적화 장치(100)는 스마트 모바일 단말에 설치되는 각종 애플리케이션에 대해 생성된 액티비티를 구동하기 위한 GUI 컴포넌트에 관련한 복수의 스레드를 사용자 경험을 활용하여 처리속도가 높으나 에너지 소비가 많은 빅코어, 처리속도가 늦으나 에너지 소비가 낮은 리틀코어 또는 이들의 조합에 효율적으로 할당하여 상기 스마트 모바일 단말의 에너지 소비를 줄이면서 사용자의 입력 이벤트에 따른 이벤트 처리에 따른 응답시간을 최소화한다.
또한 GUI 컴포넌트에 관련한 복수의 스레드는 애플리케이션의 액티비티를 구동하기 위한 적어도 하나 이상의 GUI 처리 스레드와, 사용자의 입력 이벤트에 따른 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 포함하여 구성된다.
또한 에너지 소비 최적화 장치(100)는 GUI 컴포넌트에 대한 사용자의 사용빈도(즉, 사용자 경험)를 카운트하고 있으면서, GUI 컴포넌트에 대한 사용빈도가 낮은 경우, 상기 GUI 컴포넌트의 GUI 처리 스레드를 에너지 소비가 낮으나 처리속도가 느린 리틀코어(220)에 우선적으로 할당하여 스마트 모바일 단말의 에너지 소비를 줄일 수 있도록 한다.
반면, 에너지 소비 최적화 장치(100)는 GUI 컴포넌트의 사용빈도가 높으면 해당 GUI 컴포넌트의 GUI 처리 스레드를 에너지 소비가 높으나 처리속도가 빠른 빅코어(210)에 우선적으로 할당하여 GUI 컴포넌트의 구동을 빠르게 함으로써, 사용자 만족성을 높일 수 있도록 한다.
또한 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생한 경우, 에너지 소비 최적화 장치(100)는, 해당 GUI 컴포넌트의 사용빈도가 높으면 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 빅코어(210)에 할당하여 이벤트에 대한 응답속도를 빠르게 함으로써 사용자 만족성을 높일 수 있도록 한다. 반면에 GUI 컴포넌트의 사용빈도가 낮으면 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 리틀코어(220)에 할당하여, 스마트 모바일 단말의 에너지 소비를 줄일 수 있도록 한다.
즉, 에너지 소비 최적화 장치(100)는 사용자 경험에 따른 GUI 컴포넌트의 사용빈도에 따라 GUI 컴포넌트를 구동하기 위한 GUI 처리 스레드와 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 빅코어(210) 혹은 리틀코어(220)로 할당하는 것이다.
한편, 프로세서(200)는 GUI 컴포넌트에 관련한 복수의 스레드에 대한 에너지 소비 최적화 장치(100)의 할당에 따라 상기 할당된 각 스레드를 빅코어(210) 및 리틀코어(220)를 통해 처리한다.
이하에서는 GUI 컴포넌트에 관련한 각각의 스레드를 사용자 경험에 따라 빅코어(210) 또는 리틀코어(220)로 할당하는 방법을 상세히 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따른 GUI 컴포넌트에 관련한 복수의 스레드를 멀티코어에 할당하는 방법을 설명하기 위해 나타낸 도면이다.
도 4에 도시한 바와 같이, 본 발명의 일 실시예에 따른 에너지 소비 최적화 장치(100)는 각 애플리케이션의 액티비티가 생성되어 해당 액티비티를 구동하기 위해 등록된 적어도 하나 이상의 GUI 컴포넌트에 대한 GUI 처리 스레드를 빅코어(210) 또는 멀티코어(220)에 할당하는 제1 과정(도 4에 나타낸 라인 1 내지 7)과, 상기 GUI 컴포넌트에서 입력 이벤트가 발생하면 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210) 또는 멀티코어(220)에 할당하는 제2 과정(도 4에 나타낸 라인 8 내지 14)을 수행하여 상기 GUI 컴포넌트에 관련한 복수의 스레드를 각 코어에 할당한다.
한편, 도 4에 나타낸 widget[i](위젯)는 해당 액티비티의 구동을 담당하기 위한 적어도 하나 이상의 GUI 컴포넌트를 의미하며, numwidget는 상기 GUI 컴포넌트의 개수를 나타낸다.
또한 num_Proc[i]는 GUI 컴포넌트의 이벤트 처리를 위한 프로시져의 개수를 의미하며, widget[i].usage는 해당 GUI 컴포넌트(i 번째)의 사용빈도(즉, 해당 GUI 컴포넌트에 대한 사용자 경험)를 의미한다.
또한 widget[i].Proc[k]는 GUI 컴포넌트(i 번째)의 이벤트 처리를 위한 프로시져(k 번째)를 의미하고, USAGE_THRSHOLD는 사전에 설정한 사용빈도 대한 임계값을 의미한다.
또한 도 4에 나타낸 라인 1 내지 7을 참조하여 설명하면 에너지 소비 최적화 장치(100)는 각 애플리케이션의 액티비티를 구동하기 위해 각각 등록된 적어도 하나 이상의 GUI 컴포넌트들을 검사하여 상기 검사한 GUI 컴포넌트 중 사용빈도가 사전에 설정한 임계값 미만인 GUI 컴포넌트는 리틀코어(220)에 우선적으로 할당한다.
즉, 에너지 소비 최적화 장치(100)는 사용자 경험에 따른 GUI 컴포넌트에 대한 사용빈도가 사전에 설정한 임계값(USAGE_THRHOLD)보다 낮은 GUI 컴포넌트의 GUI 처리 스레드를 리틀코어(220)로 우선 할당하는 것이다. 반면에, 에너지 소비 최적화 장치(100)는 검사한 GUI 컴포넌트 중 사용빈도가 사전에 설정한 임계값 이상인 GUI 컴포넌트의 GUI 처리 스레드는 빅코어(210)에 우선 할당한다.
또한 이벤트 처리 스레드에 대한 코어 할당 방법을 도 4에 나타낸 라인 8 내지 14를 참조하여 설명하면, 특정 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생하는 경우, 에너지 소비 최적화 장치(100)는 해당 GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값을 초과하면, 해당 GUI 컴포넌트의 이벤트 핸들러에 등록된 프로시져들을 실행하는 이벤트 처리 스레드를 빅코어(210)에 우선 할당한다.
이때, GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값 이하인 경우, 에너지 소비 최적화 장치(100)는 해당 GUI 컴포넌트의 이벤트 핸들러에 등록된 프로시져들을 실행하는 이벤트 처리 스레드를 리틀코어(220)에 우선 할당한다.
한편, 에너지 소비 최적화 장치(100)는 상기 각 코어에 상기 GUI 컴포넌트에 관련한 복수의 스레드를 할당할 때, 상기 빅코어(210)를 사용하지 못하거나, 또는 리틀코어(220)를 사용하지 못하는 경우, 빅코어(210) 및 리틀코어(220) 중 사용 가능한 어느 하나의 코어에 우선 할당한다.
또한 에너지 소비 최적화 장치(100)는 상기 GUI 컴포넌트가 삭제(즉, 해당 응용프로그램이 삭제)되면 할당한 각 스레드를 해지하고 삭제한다. 또한 이벤트 처리가 완료되면 이벤트 처리 스레드에 대한 빅코어(210) 또는 리틀코어(220)에 할당을 해지한다.
상기에서 설명한 것과 같이, 에너지 소비 최적화 장치(100)는 사용자 경험을 활용하여 적어도 하나 이상의 GUI 처리 스레드 및 적어도 하나 이상의 이벤트 처리 스레드를 포함하는 GUI 컴포넌트에 관련한 복수의 스레드를 빅코어(210) 또는 리틀코어(220)에 효율적으로 할당하여 스마트 모바일 단말의 에너지 소비를 최적화하고, 이벤트 처리에 대한 응답시간을 효과적으로 줄일 수 있도록 한다.
도 5는 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치의 구성을 나타낸 블록도이다.
도 5에 도시한 바와 같이, 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치(100)는 스마트 모바일 단말에 설치된 응용프로그램별로 액티비티를 위해 생성된 적어도 하나 이상의 GUI 컴포넌트(위젯)를 검사하는 GUI 컴포넌트 검사부(110), 상기 검사한 결과에 따라 상기 GUI 컴포넌트에 관련한 복수의 스레드를 각 코어(빅코어 혹은 리틀코어)에 할당하는 코어 할당부(130), 상기 각 코어에 할당한 복수의 스레드를 해지하는 코어 해지부(140) 및 메모리(150)를 포함하여 구성된다.
또한 GUI 컴포넌트 검사부(110)는 응용프로그램별로 액티비티를 위해 생성되어 등록된 적어도 하나 이상의 GUI 컴포넌트(위젯)에 대한 사용빈도를 검사하는 기능을 수행한다. 즉, GUI 컴포넌트 검사부(110)는 상기 GUI 컴포넌트를 사용한 사용자 경험인 사용빈도를 검사하는 것이다. 상기 검사는 실시간으로 수행되거나, 주기적으로 수행될 수 있다.
또한 응용프로그램의 액티비티는 스마트 모바일 단말에서의 화면출력, 입력 이벤트에 대한 사용자 입력 또는 이들의 조합을 포함하며, GUI 컴포넌트는 상기 액티비티를 구동하기 위한 위젯을 의미한다. 여기서, 상기 액티비티는 GUI 컴포넌트의 GUI 처리 스레드에 의해 구동되며, 입력 이벤트에 대한 이벤트 처리는 각 입력 이벤트에 대해 사전에 설정한 적어도 하나 이상의 프로시져를 실행하는 이벤트 처리 스레드에 의해 수행된다.
또한 코어 할당부(130)는 해당 액티비티를 구동(즉, GUI 컴포넌트의 구동)하기 위한 GUI 처리 스레드와 입력 이벤트에 따른 이벤트 처리를 위한 이벤트 처리 스레드를 빅코어(210) 혹은 리틀코어(220)에 할당하는 기능을 수행하는 것으로 GUI 처리 스레드 코어 할당부(131) 및 이벤트 처리 스레드 코어 할당부(132)를 포함하여 구성된다.
또한 GUI 처리 스레드 코어 할당부(131)는 GUI 컴포넌트별로 사용빈도를 검사한 결과, 사전에 설정한 임계값을 초과하는 경우 해당 GUI 컴포넌트의 GUI 처리 스레드를 처리속도가 높고 에너지 소비가 많은 빅코어(210)에 우선 할당한다.
한편, GUI 처리 스레드 코어 할당부(131)는 GUI 컴포넌트별 사용빈도가 사전에 설정한 임계값 이하인 경우, 해당 GUI 컴포넌트의 GUI 처리 스레드를 처리속도가 느리지만 에너지 소비가 적은 리틀코어(220)에 우선 할당한다.
또한 이벤트 처리 스레드 코어 할당부(132)는 해당 GUI 컴포넌트를 통해 사용자에 의한 입력 이벤트가 발생되면, 해당 입력 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210) 혹은 리틀코어(220)에 할당하는 기능을 수행한다.
이때, 이벤트 처리 스레드 코어 할당부(132)는 GUI 컴포넌트별로 사용빈도를 검사한 결과, GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값을 초과하는 경우, 해당 GUI 컴포넌트에 대한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210)에 우선 할당한다. 반면에, GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값 이하이면, 해당 GUI 컴포넌트에 대한 적어도 하나 이상의 이벤트 처리 스레드를 리틀코어(220)에 할당한다.
즉, 코어 할당부(130)는 GUI 컴포넌트에 관련한 모든 스레드를 한 번에 각 코어에 할당하는 것이 아니라, 우선 GUI 컴포넌트의 GUI 처리 스레드를 사용자 경험에 따른 상기 GUI 컴포넌트의 사용빈도에 따라 우선 각 코어에 할당한 후, 각 GUI 컴포넌트에서 입력 이벤트가 발생한 경우에, 해당 입력 이벤트를 처리하기 위한 적어도 하나 이상의 이벤트 처리 스레드를 각 코어에 할당하는 것이다.
또한 코어 해지부(140)는 각 코어에 할당한 적어도 하나 이상의 이벤트 처리 스레드에서 이벤트 처리가 완료된 경우, 상기 적어도 하나 이상의 이벤트 처리 스레드에 대한 각 코어의 할당을 해지한다.
즉, 코어 해지부(140)는 GUI 처리 스레드가 각 코어에 할당되었다고 하더라도, GUI 컴포넌트에 대한 사용이 완료된 경우, 각 코어에 대한 이벤트 처리 스레드의 할당을 해지하는 것이다.
또한 사용자 경험 카운트부(120)는 사용자의 각 GUI 컴포넌트에 대한 사용(즉, 사용자 경험)이 있을 때 마다, 해당 GUI 컴포넌트에 대한 사용빈도를 누적하여 카운트하는 기능을 수행한다. 이때, GUI 컴포넌트 검사부(110)는 상기 사용자 경험 카운트(120)를 통해 카운트한 사용자 경험(즉, 사용빈도)을 이용하여 각 GUI 컴포넌트별 사용빈도를 주기적 혹은 실시간으로 검사하게 된다.
또한 사용자 경험 카운트부(120)는 이벤트 처리 스레드가 각 코어에 할당되거나, 상기 이벤트 처리 스레드의 할당이 해지되는 것을 포함하여 사용자가 GUI 컴포넌트를 이용할 때 마다 해당 GUI 컴포넌트의 사용자 경험(사용빈도)을 누적하여 카운트한다.
또한 메모리(150)는 사용빈도에 대해 사전에 설정한 임계값, 각 GUI 컴포넌트별 사용빈도, 상기 각 GUI 컴포넌트에 관련한 복수의 스레드를 각 코어에 할당하기 위한 방법(알고리즘) 등을 포함하여, 에너지 소비 최적화 장치(100)의 동작에 필요한 다양한 데이터(혹은 정보)들을 저장하는 기능을 수행한다. 이때, 상기 메모리(150)는 에너지 소비 최적화 장치(100)에 자체적으로 구비될 수 있다. 다만, 에너지 소비 최적화 장치(100)는 메모리(150)를 자체적으로 구비하지 않고, 해당 에너지 소비 최적화 장치(100)가 구비되는 스마트 모바일 단말의 메모리를 이용할 수 있음은 당연하다.
도 6은 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비를 최적화하는 절차를 나타낸 흐름도이다.
도 6에 도시한 바와 같이, 본 발명의 일 실시예에 따른 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비를 최적화하는 절차는 우선, 에너지 소비 최적화 장치(100)는 각 응용프로그램에 대한 GUI 컴포넌트의 사용자 경험(사용빈도)을 검사하는 GUI 컴포넌트 검사 단계를 수행한다(S110).
한편, 각 GUI 컴포넌트는 각 응용프로그램에 대한 화면출력, 사용자 입력 또는 이들의 조합을 포함한 액티비티를 담당하기 위한 것임은 상술한 바와 같다.
다음으로 에너지 최적화 장치(100)는 검사한 결과 GUI 컴포넌트의 사용빈도(즉, 사용자 경험)가 사전에 설정한 임계값을 초과(S120)하면, 상기 액티비티를 구동하기 위한 해당 GUI 컴포넌트의 GUI 처리 스레드를 빅코어(210)에 우선 할당하는 GUI 처리 스레드 코어 할당 단계를 수행한다(S130). 이때, 상기 GUI 처리 스레드 코어 할당 단계는 상기 GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값 이하(S120)이면, 해당 GUI 컴포넌트의 GUI 처리 스레드를 리들코어(220)에 우선 할당한다(S131).
즉, 에너지 최적화 장치(100)는 사용자가 GUI 컴포넌트를 이용한 사용자 경험에 따른 사용빈도에 따라 해당 GUI 컴포넌트의 적어도 하나 이상의 GUI 처리 스레드를 빅코어(210) 혹은 리틀코어(220)에 할당하는 것이다.
다음으로 에너지 소비 최적화 장치(100)는 특정 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생(S140)하고, 해당 GUI 컴포넌트의 사용빈도가 사전에 설정한 임계값을 초과(S150)하면, 상기 입력 이벤트에 대한 이벤트 처리를 위한 적어도 하나 이상의 이벤트 처리 스레드를 빅코어(210)에 할당하는 이벤트 처리 스레드 코어 할당 단계를 수행한다(S160).
다음으로 에너지 소비 최적화 장치(100)는 입력 이벤트에 대한 이벤트 처리가 완료(S170)되면, 빅코어(210) 혹은 리틀코어(220)에 대한 해당 GUI 컴포넌트의 이벤트 처리 스레드의 할당을 해지하는 코어 해지 단계(S180)를 수행하고, 해당 GUI 컴포넌트의 사용자 경험(사용빈도)을 누적하여 카운트하는 사용자 경험 카운트 단계를 수행한다(S190).
이하에서는, 본 발명의 에너지 최적화 장치(100)의 성능을 검증한 결과를 상세히 설명하도록 한다. 상기 성능을 검증하기 위한 시뮬레이션을 수행하여 상기 에너지 최적화 장치(100)의 성능을 평가하였다.
또한 4개의 빅코어와 4개의 리틀코어로 구성된 스마트 모바일 단말을 시뮬레이션(실험) 대상으로 하였으며, 실제 환경에 대한 모사를 위해 상기 빅코어의 처리속도는 1.8GHz로, 에너지 소모는 초당 0.57μJ로, 리틀코어의 처리속도는 1.4GHz로 에너지 소모는 초당 0.24μJ로 실험 파라미터로 설정하였다.
또한 각각의 GUI 컴포넌트들은 각 별도의 스레드에서 동작하며, GUI 처리 스레드는 상시 동작하므로, 응용프로그램이 포그라운드인 경우 지속적인 CPU 점유가 발생한다.
또한 각 GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생할 경우, 이벤트 핸들러와 등록된 프로시져들의 동작을 위한 이벤트 처리 스레드가 추가로 구동되며, 각 GUI 컴포넌트별로 하나의 이벤트 처리 스레드가 추가되어 실행되는 것으로 가정하였다. 또한 이벤트 처리 스레드의 작업량은 GUI 처리 스레드의 작업량의 배수(예: 3배 내지 9배)로 가정하였다.
또한 이벤트의 발생은 도착률이 λ인 포아송 프로세스(poisson process)를 따르며, 한 번의 실험은 10,000초간 진행하였고, 총 100번을 반복하여 평균을 구했다. 측정하는 에너지 소비량은 시뮬레이션 시간(즉, 10,000초) 동안 소비된 총 에너지를 mJ 단위로 표현하였다.
또한 성능 평가를 위해서 현재 안드로이드 플랫폼에서 주로 사용되고 있는Legacy 방법(종래 기술)과 본 발명의 코어 할당 방법의 에너지 소비량과 대기 시간을 비교하였다.
한편, 종래 기술(Legacy 방법)은 GUI 컴포넌트의 화면출력과 동작을 담당하는 스레드는 빅코어에 우선 할당하며, GUI 컴포넌트에서 사용자에 의한 입력 이벤트가 발생되면 미리 등록된 이벤트 핸들러와 프로시져를 당담하는 이벤트 처리 스레드를 우선순위와 작업의 양에 따라 빅코어 혹은 리틀코어 할당이 결정된다. 단, 본 실험에서는 리틀코어 우선으로 가정하였다.
도 7은 본 발명의 일 실시예에 따른 에너지 소비에 대한 성능을 종래기술과 비교한 도면이다.
도 7에 도시한 바와 같이, 사용자가 GUI 컴포넌트에 입력 이벤트를 발생시켰을 때, GUI 처리 스레드에서 수행하는 시간과 GUI 컴포넌트의 이벤트 처리를 위해 등록된 프로시져들을 수행하는 시간의 비율(즉, 프로시져/GUI 컴포넌트 execution time ratio)을 1:3에서 1:9까지 변화시켜 가면서 종래기술과 본 발명이 적용된 스마트 모바일 단말의 에너지 소모량을 측정하여 에너지 소비에 대한 성능을 비교하였다.
도 7을 보면, 본 발명이 적용된 스마트 모마일 단말은 종래기술이 적용된 스마트 모바일 단말에 비해 전반적으로 적은 에너지 소모량을 나타내었으며, 최대 40%의 에너지 절약효과를 보임을 알 수 있다. 단, 상기 비율이 커질수록 본 발명과 종래기술에서 모두 에너지 소모량이 증가하였는데, 종래기술의 증가폭이 적은 이유는 구조상 최대치(즉, 빅코어로만 수행한 경우)에 가까워 졌기 때문이다.
도 8은 본 발명의 일 실시예에 따른 이벤트 처리의 응답시간에 대한 성능을 종래기술과 비교한 도면이다.
도 8에 도시한 바와 같이, 사용자가 GUI 컴포넌트에 입력 이벤트를 발생시켰을 때, GUI 처리 스레드에서 수행하는 시간과 GUI 컴포넌트의 이벤트 처리를 위해 등록된 프로시져들을 수행하는 시간의 비율(즉, 프로시져/GUI 컴포넌트 execution time ratio)을 1:3에서 1:9까지 변화시켜 가면서 종래기술과 본 발명이 적용된 스마트 모바일 단말의 이벤트 처리에 대한 평균 응답시간을 측정하여 이벤트 처리에 대한 응답시간에 대한 성능을 비교하였다.
도 8을 보면, 본 발명이 적용된 스마트 모마일 단말은 종래기술이 적용된 스마트 모바일 단말에 비해 전반적으로 더 작은 응답시간을 나타내었으며 종래기술보다 최대 20%의 응답시간에 대한 단축효과를 보임을 알 수 있다. 단, 상기 비율이 커질수록 본 발명과 종래기술의 차이가 커짐을 볼 수 있는데, 이러한 결과는 본 발명에서 GUI 처리 스레드보다 이벤트 처리 스레드를 빅코어에 할당하는 경향이 크기 때문이다.
도 7 및 도 8을 참조하여 설명한 것과 같이, 종래기술의 코어 할당 방법은 본 발명과 대비하여 에너지 비효율성과 응답시간의 지연문제가 발생함을 알 수 있다. 또한 실제 환경을 반영한 시뮬레이션(실험)을 통해 본 발명의 에너지 소비 최정화 장치(100)가 적용된 스마트 모바일 단말의 에너지 효율 면에서 종래기술 대비 최대 40%를 향상시켰고, 응답시간 단축 면에서도 최대 20%를 개선시켰음을 알 수 있다.
이처럼, 본 발명은 빅코어와 리틀코어로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말에서 사용자 경험을 활용하여 GUI 컴포넌트와 관련된 복수의 스레드를 빅코어 혹은 리틀코어에 효율적으로 할당하기 때문에, 스마트 모바일 단말의 에너지 소비를 최적화할 수 있으며, 이벤트 발생에 대한 응답시간을 단축시킬 수 있도록 하는 장점이 있다.
이상에서와 같이 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 판단되어야 할 것이다.
100: 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 110: GUI 컴포넌트 검사부
120: 사용자 경험 카운트부 130: 코어 할당부
131: GUI 처리 스레드 코어 할당부 132: 이벤트 처리 스레드 코어 할당부
140: 코어 해지부 150: 메모리
200: 프로세서 210: 빅코어
220: 리틀코어

Claims (10)

  1. 빅코어 및 리틀코어로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말의 에너지 소비 최적화 장치에 있어서,
    GUI 컴포넌트(위젯)에 대한 사용자 경험인 사용빈도를 검사하는 GUI 컴포넌트 검사부;
    상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어에 할당하는 GUI 처리 스레드 코어 할당부; 및
    상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어에 할당하는 이벤트 처리 스레드 코어 할당부;를 포함하며,
    상기 GUI 처리 스레드 코어 할당부는, 상기 검사한 사용빈도가 사전에 설정한 임계값을 초과하면 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하고, 임계값 이하이면 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하며,
    상기 이벤트 처리 스레드 코어 할당부는, 상기 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어에 할당할 때, 상기 검사한 사용빈도가 사전에 설정한 임계값을 초과하면 상기 이벤트 처리 스레드를 상기 빅코어에 우선 할당하고, 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하며,
    상기 사용자 경험을 활용하여 상기 빅코어 혹은 리틀코어를 상기 GUI 처리 스레드와 상기 이벤트 처리 스레드에 할당함으로써 상기 스마트 모바일 단말의 에너지 소비와 GUI 컴포넌트의 응답시간을 줄일 수 있도록 하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 청구항 1에 있어서,
    상기 에너지 소비 최적화 장치는,
    상기 빅코어 혹은 리틀코어에 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지부; 및
    상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트부;를 더 포함하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 장치.
  6. 빅코어 및 리틀코어로 구성된 멀티코어 구조를 사용하는 스마트 모바일 단말의 에너지 소비 최적화 방법에 있어서,
    GUI 컴포넌트(위젯)에 대한 사용자 경험인 사용빈도를 검사하는 GUI 컴포넌트 검사 단계;
    상기 검사한 결과에 따라, 상기 GUI 컴포넌트의 구동을 처리하기 위한 GUI 처리 스레드를 상기 빅코어 혹은 리틀코어에 할당하는 GUI 처리 스레드 코어 할당단계; 및
    상기 GUI 컴포넌트에서 입력 이벤트가 발생하면, 상기 검사한 결과에 따라 상기 입력 이벤트를 처리하기 위한 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어에 할당하는 이벤트 처리 스레드 코어 할당 단계;를 포함하며,
    상기 GUI 처리 스레드 코어 할당 단계는, 상기 검사한 사용빈도가 사전에 설정한 임계값을 초과하면 상기 GUI 처리 스레드를 상기 빅코어에 우선 할당하고, 임계값 이하이면 상기 GUI 처리 스레드를 상기 리틀코어에 우선 할당하며,
    상기 이벤트 처리 스레드 코어 할당 단계는, 상기 이벤트 처리 스레드를 상기 빅코어 혹은 리틀코어에 할당할 때, 상기 검사한 사용빈도가 사전에 설정한 임계값을 초과하면 상기 이벤트 처리 스레드를 상기 빅코어에 우선 할당하고, 임계값 이하이면 상기 이벤트 처리 스레드를 상기 리틀코어에 우선 할당하며,
    상기 사용자 경험을 활용하여 상기 빅코어 혹은 리틀코어를 상기 GUI 처리 스레드와 상기 이벤트 처리 스레드에 할당함으로써 상기 스마트 모바일 단말의 에너지 소비와 GUI 컴포넌트의 응답시간을 줄일 수 있도록 하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 청구항 6에 있어서,
    상기 에너지 소비 최적화 방법은,
    상기 빅코어 혹은 리틀코어에 할당한 이벤트 처리 스레드에 의해 상기 입력 이벤트에 대한 처리가 완료된 경우, 상기 이벤트 처리 스레드에 대한 빅코어 혹은 리틀코어로의 할당을 해지하는 코어 해지 단계; 및
    상기 GUI 컴포넌트를 사용자가 이용할 때 마다, 해당 GUI 컴포넌트에 대한 사용자 경험인 사용빈도를 누적하여 카운트하는 사용자 경험 카운트 단계;를 더 포함하는 것을 특징으로 하는 스마트 모바일 단말의 에너지 소비 최적화 방법.
KR1020210041113A 2021-03-30 2021-03-30 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법 KR102630955B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210041113A KR102630955B1 (ko) 2021-03-30 2021-03-30 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210041113A KR102630955B1 (ko) 2021-03-30 2021-03-30 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법

Publications (2)

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

Family

ID=83595839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210041113A KR102630955B1 (ko) 2021-03-30 2021-03-30 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102630955B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102182319B1 (ko) * 2013-06-05 2020-11-25 삼성전자주식회사 전자 기기 및 전자 기기에서 배터리 정보 제공 방법
CN110879750A (zh) * 2017-10-13 2020-03-13 华为技术有限公司 资源管理的方法及终端设备
KR102204032B1 (ko) * 2019-03-07 2021-01-15 남서울대학교 산학협력단 비대칭 멀티코어 기반 스마트 모바일 단말의 에너지 소모를 줄이기 위한 실시간 태스크의 코어 할당 방법 및 그 장치

Also Published As

Publication number Publication date
KR20220135443A (ko) 2022-10-07

Similar Documents

Publication Publication Date Title
CN108009006B (zh) I/o请求的调度方法及装置
KR101029414B1 (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
CN111052149B (zh) 用于确定网络中的内存需求的方法和装置
US8055822B2 (en) Multicore processor having storage for core-specific operational data
EP2580657B1 (en) Information processing device and method
US20160048199A1 (en) Electronic device
JP2021121959A (ja) 深層学習推論エンジンのスケジューリング方法、装置、機器及び媒体
CN110427256A (zh) 基于优先级的作业调度优化方法、设备、存储介质及装置
CN104050137B (zh) 一种异构操作系统中内核运行的方法及装置
US20200234146A1 (en) Platform for concurrent execution of gpu operations
CN108549574A (zh) 线程调度管理方法、装置、计算机设备和存储介质
CN101799772B (zh) 内核调度方法、内核备份方法和多核处理器
CN111708642A (zh) Vr系统中处理器性能优化方法、装置及vr设备
CN109491780A (zh) 多任务调度方法及装置
CN115080209A (zh) 系统资源调度方法、装置、电子设备及存储介质
Padoin et al. Managing power demand and load imbalance to save energy on systems with heterogeneous CPU speeds
KR102630955B1 (ko) 사용자 경험을 기반으로 big.LITTLE 멀티코어 구조의 스마트 모바일 단말의 에너지 소비 최적화 장치 및 그 방법
US20160170474A1 (en) Power-saving control system, control device, control method, and control program for server equipped with non-volatile memory
Niu et al. Reliability-aware scheduling for reducing system-wide energy consumption for weakly hard real-time systems
CN111459648B (zh) 面向应用程序的异构多核平台资源优化方法和装置
CN113495787A (zh) 资源分配方法、装置、存储介质及电子设备
CN115756866A (zh) 负载均衡方法、装置及存储介质
US20180175861A1 (en) Information processing device, pld management program, and pld management method
KR102204032B1 (ko) 비대칭 멀티코어 기반 스마트 모바일 단말의 에너지 소모를 줄이기 위한 실시간 태스크의 코어 할당 방법 및 그 장치
US20170212790A1 (en) Computer processing system with resource optimization and associated methods

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