780 정보과학회논문지 : 컴퓨팅의 실제 및 레터 제 18 권 제 11 호(2012.11) 스마트폰 응용프로그램 에너지 소모 분석을 위한 프레임워크 (A Framework for Application Energy Consumption analysis in Smart Phones) 이 제 민 조 현 우 (Jemin Lee) 김 형 신 (Hyungshin Kim) (Hyunwoo Joe) 요 약 본 논문에서는 스마트폰에서의 전력 소모를 분 석 할 수 있는 프레임워크를 제시한다. 스마트폰은 제한적 인 전력 공급을 가지기 때문에 개발자와 사용자는 전력 소 모에 최적화된 응용프로그램을 개발하고 선택할 수 있어야 한다. 본 연구에서는 전력 모델 생성, 전력 소모 추정, 추정 데이터 분석 기능을 포함하는 프레임워크를 제안한다. 실제 스마트폰들을 이용하여 프레임워크의 전력소모 추정 실험결 과 평균 80% 이상의 정확도 보여준다. 키워드 : 전력모델, 전력 추정, 전력 분석, 스마트폰 Abstract In this paper, we propose a framework to analyze smartphone's power consumption. Application developers and end users should be allowed to choose energy-efficient applications because smartphone has limited power capacity. Our framework provides power 이 연구는 2011년 충남대학교 학술연구비에 의해 지원되었음 이 논문은 2012 한국컴퓨터종합학술대회에서 스마트폰 응용프로그램 에너 지 소모 분석을 위한 프레임워크 의 제목으로 발표된 논문을 확장한 것임 비 회 원 : 충남대학교 컴퓨터공학과 leejaymin@cnu.ac.kr 학생회원 : 충남대학교 컴퓨터공학과 jhwzero@cnu.ac.kr 종신회원 : 충남대학교 컴퓨터공학과 교수 hyungshin@cnu.ac.kr (Corresponding author임) 논문접수 : 2012년 8월 21일 심사완료 : 2012년 9월 21일 CopyrightC2012 한국정보과학회ː개인 목적이나 교육 목적인 경우, 이 저작 물의 전체 또는 일부에 대한 복사본 혹은 디지털 사본의 제작을 허가합니다. 이 때, 사본은 상업적 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처 를 반드시 명시해야 합니다. 이 외의 목적으로 복제, 배포, 출판, 전송 등 모든 유형의 사용행위를 하는 경우에 대하여는 사전에 허가를 얻고 비용을 지불해야 합니다. 정보과학회논문지: 컴퓨팅의 실제 및 레터 제18권 제11호(2012.11) model generation, power consumption estimation, and data analysis service for smartphone applications. Using our framework, we achieved energy analysis accuracy of 80% for Nexus-one, Desire and Galaxy-S phones. Key words : Power Model, power estimation, power analysis, smart phone 1. 서 론 스마트폰 제한적인 전력을 갖기 때문에 응용프로그램 의 전력 소모는 최적화 될 필요가 있다. 따라서 어디에 서 얼마나 전력 소모가 일어나는지 분석할 수 있는 프 레임워크가 필요하다. 전력 소모를 분석하는 방법으로는 실제 외부 측정 장 치를 이용하는 하드웨어적인 방법과 전력 모델을 이용 하는 소프트웨어적인 방법이 있다. 개발자와 사용자들이 쉽게 전력 소모를 측정하기 위해서는 전력 모델을 이용 한 소프트웨어적인 측정 방법이 적합하다. 최근 스마트폰에 대한 전력 모델 연구로는 [1-3]이 있다. [1,2]는 외부 전력 측정 장치를 한번 이상 사용해 야 하는 단점을 가진다. 반면에 PowerDoctor[3]는 외부 전력 측정 장치의 사용 없이 스마트폰 내부의 전압센서 와 배터리 레벨 지시자만을 사용한다. 그리고 이 센서들 의 측정값과 사용자 사용 패턴을 이용해 자동으로 전력 모델을 생성하는 방법을 제시했다. 하지만 신뢰성 있는 전력 모델을 생성하기 위해서는 임의 사용자가 사용하 는 패턴을 많이 수집해야 한다. 이때 많은 시간이 걸릴 수 있다. 우리는 기존 연구들의 단점을 보완한 스마트폰 응용 프로그램 전력 소모 분석 프레임워크를 제안한다. 이 프 레임워크는 전력 모델 생성, 전력 소모 추정, 추정 데이 터의 상세 분석 기능을 포함한다. 우리의 전력 모델 생성 방식은 외부 측정 장비의 사 용 없이 자동으로 생성하며 이는 PowerDoctor 와 유사 하다. 하지만 우리는 PowerDoctor와는 달리 임의 사용 자의 CPU, Display, Wi-Fi에 대한 사용 패턴을 수집하 지 않고 사용 패턴 생성기를 개발하여 임의로 사용 패 턴을 생성한다. 따라서 PowerDoctor 보다 빠른 시간에 간편하게 전력모델을 생성할 수 있다. 우리가 생성한 스마트폰 전력 모델은 Nexus-one, Desire, Galaxy-S의 CPU, Display, Wi-Fi에 대한 것이다. 우리 프레임워크의 전력 소모 추정도구는 기존 Power Tutor[4]의 모델정확도와 프로파일링 지연 문제를 개선 한 것이다. 우리의 전력 소모 추정도구를 이용하여 전력 모델의 정확도 검증 실험 결과 Nexus- one의 전력 모 델 정확도는 평균 89%로 기존 PowerTutor의 전력 모 델 보다 평균 12%의 정확도 향상을 보였다. Desire와
스마트폰 응용프로그램 에너지 소모 분석을 위한 프레임워크 781 Galaxy-S의 전력 모델에 대해서는 각각 평균 82%, 73%의 정확도를 가진다. 그리고 전력 소모 분석 프레임워크에서 전력 소모 추정 데이터를 상세히 분석하기 위해서 분석 도구 Power TutorTrace를 포함한다. 이 도구는 특정 응용프로그램 의 전력 소모 패턴을 원하는 조건에 맞게 자동으로 그 래프를 그려서 분석할 수 있는 도구이다. 본 논문의 주요 기여도는 다음과 같다. 우리는 사용 패턴 생성기를 이용한 자동 전력 모델 생성 방법을 제안했다. 이 방식으로 평균 80% 이상의 정확도를 가지는 전력 모델을 생성할 수 있었다. 우리는 PowerTutor를 확장하여 전력소모 추정도구를 제공한다. 이는 Nexus-one의 전력모델의 정확도를 개선 하였고, Desire, Galaxy-S의 전력모델은 새롭게 추가했다. 전력소모 추정 데이터를 세밀하게 분석하기 위한 도구 로 PowerTutorTrace를 개발했다. 이를 통해서 특정 응 용프로그램의 전력 소모를 효율적으로 분석할 수 있다. 본 논문은 다음과 같이 진행 된다. 2장에서는 전력 소 모 분석을 위한 우리의 프레임워크를 설명 한다. 3장에서 는 전력 모델의 정확도를 검증 한다. 4장은 관련연구를 설명한다. 마지막 5장에서는 본 연구의 결론을 내린다. 2. 전력 소모 분석을 위한 프레임워크 본 연구에서 제시하는 프레임워크의 흐름을 도식화한 모습은 그림 1과 같으며, 전력 모델 생성 단계, 전력 소 모 추정 단계, 전력 소모 분석 단계로 구성 된다. 본 장 에서는 각 단계의 내용을 상세히 기술한다. 2.1 전력 모델 생성 단계 전력 모델 생성 단계는 소프트웨어로 전력 소모를 추 정할 때 필요한 전력 모델을 만드는 단계이다. 우리는 외부장치의 사용 없이 자동으로 간편하게 전 력모델을 생성할 수 있는 방법으로 사용 패턴 생성기와 PowerDoctor를 이용한다. 이 방법은 PowerDoctor를 확장한 것으로 임의의 사용자 사용패턴을 수집하여 전 그림 1 전력 소모 분석 프레임워크의 구성 력 모델을 생성할 경우 신뢰성 있는 전력 모델 생성에 시간이 오래 걸리는 단점을 개선한 것이다. 우리의 프레임워크를 이용해서 생성한 전력 모델은 표 1과 같다. 사용 패턴 생성기의 핵심 기능은 배터리 용량 감소와 스마트폰의 각 장치 별 사용 상태를 동기화시키는 것이 다. 즉, 배터리 레벨 지시자의 낮은 갱신 주기를 극복하 기 위해서 동일한 사용 상태를 유지시키는 것이다. 이렇 게 사용 패턴을 수집하면 모든 전력 소모 수집 데이터 를 전력 모델 생성에 바로 사용할 수 있게 된다. 사용 패턴 생성기가 스마트폰의 각 장치 별 사용 상태를 발 생 시키는 내용은 아래와 같다. CPU: CPU 장치에서의 사용률에 따른 전력 소모를 알아내기 위해서 단일 배터리 용량 동안 평균 사용률 이 표준편차 4% 이내로 일정하게 유지 되도록 한다. Display: Display 장치에서의 화면 밝기에 따른 전력 소모를 알아내기 위해서 단일 배터리 용량 동안 일정하 게 화면 밝기를 유지 시킨다. 배터리 용량이 감소하면 화면의 밝기를 설정한 값만큼 줄이거나 증가 시킨다. Wi-Fi: Wi-Fi 장치에서의 packet rate에 따른 전력 소모를 알아내기 위해서 단일 배터리 용량 동안 1Mbyte 의 TCP packet을 일정한 packet rate로 서버로 전송 한다. 2.2 전력 소모 추정 단계 생성된 전력모델을 이용해서 실제 전력 소모를 추정 표 1 Nexus-one, Desire, Galaxy-S에 대한 전력 모델 장치 파라메터 범위 Nexus-one Desire Galaxy-S CPU Display Wi-Fi CPU_on 0,1 cpu =152mW cpu = 131.495 mw cpu =253.173mW CPU_util 0-100 util =7.1mW util =7.080mW util =9.934mW Display_on 0,1 display =148.3mW display = 285.034 mw display = 201.458 mw Bright_level 0-255 br =3.194mW br =2.281mW br =0.157mW WiFi_on 0,1 wifi = 87.048 mw wifi = 23.764 mw wifi =578.849mW wifi_b1 =0.054mW wifi_b1 =2.231mW wifi_b1 =0.727mW Packet 1-Threshold wifi_b2 =0.001mW wifi_b2 =0.053mW wifi_b2 =0.000mW Nexus-one=243, wifi_max = 159.171 mw wifi_max = 890.704 mw wifi_max = 1451.249 mw Threshold Desire=109, Galaxy-S=1200
782 정보과학회논문지 : 컴퓨팅의 실제 및 레터 제 18 권 제 11 호(2012.11) 하기 위해서는 전력 모델을 이용하는 전력 소모 추정 시간에 따른 전체 및 응용 별 전력 소모 그래프: 타 도구가 필요하다. 우리는 소스코드가 공개된 PowerTutor 임라인에 맞추어서 스마트폰 전체의 전력 소모 또는 를 확장하여 Nexus-one, Desire, Galaxy-S에 대해서 해당 응용 별 전력 소모를 그래프로 그려준다. 또한 도 전력 소모를 추정해주는 도구를 개발 했다. 이 도구 그래프는 각각의 하드웨어 컴포넌트 별로 다른 색으 는 응용프로그램의 실행 중 하드웨어 디바이스들의 사 로 표현하여 장치 별 전력 소모를 알 수 있게 한다. 용상태를 프로파일링하고 전력모델과 함께 전력소모를 사용자 설정 시간 동안의 전체 및 응용 별 전력 소 모 누적 그래프: 전력 소모 추정 전체 시간 중에서 추정하여 로그파일형태로 생성한다. 우리 전력 소모 추정 도구는 표 1의 전력모델과 식 특정 시간 동안의 전력 소모의 누적 그래프를 그린다. (1)-(4)를 이용해서 계산한다. CPU와 Display의 경우 식 해당 그래프는 파이 그래프로 그려진다. 파이 그래프 (2)와 식 (3)과 같이 선형 회귀 모델을 따른다. Wi-Fi 의 각 요소는 하드웨어 컴포넌트를 의미한다. 의 경우 식 (4)와 같이 Packet의 수가 Threshold를 넘 특정 응용들을 제외한 전체 전력 소모 그래프: 전체 어 서면 상수 전력 모델을 따르며, 그렇지 않을 경우에 전력 소모에서 한 개 이상의 응용이 가지는 전력 소 는 2차 회귀 모델을 따른다. 각각의 식 (2)-(4)에서의 모를 제외하고 그래프를 그릴 수 있다. 값들은 표 1에 나와 있는 각 스마트폰에 맞는 전력 사용자 설정 단위의 평균 전력 소모 그래프: 시간에 계수를 나타낸다. 나머지 요소들은 표 1에서의 각 장치 따른 전체 또는 응용 별 전력 소모를 설정한 단위 시간 에 맞는 파라메터 값을 의미한다. 각 파라메터들은 표 1 동안의 평균 전력 소모로 계산하여 그래프를 그린다. 에 정의된 범위의 값을 가지게 된다. 최종 전력 소모 추 정 값은 식 (1)로 계산한다. (1) 3. 전력 모델의 정확도 검증 본 장은 전력 모델의 정확도를 검증을 위한 실험구성 과 결과를 설명한다. 그림 3과 같이 스마트폰과 멀티메 (2) 터를 이용하여 실제 어플리케이션 사용 중 전력소모를 (3) 측정한다. 이 때 멀티메터는 500Hz로 전류를 측정하여 1초에 한번씩 평균값을 호스트 컴퓨터로 전송한다. 이렇 게 측정된 값과 우리 프레임워크를 사용하여 얻은 전력 (4) 소모 추정 값을 비교하여 정확도를 검증하였다. 2.3 전력 소모 분석 단계 우리는 개발자들과 사용자들이 전력 소모 추정 데이 터를 간편하게 분석 할 수 있도록 최종 분석 도구 PowerTutorTrace를 이용한다. 이 도구는 Java로 개발 된 로그 파일 분석기로 전력 소모 추정 데이터를 이용 해서 특정 응용프로그램의 전력 소모패턴을 원하는 조 건에 맞게 자동으로 그래프를 그려서 분석할 수 있다. 동작 모습은 그림 2와 같으며, PowerTutorTrace가 지 원하는 기능은 아래와 같다. 그림 3 전력 측정을 위한 실험 환경 구성 실행된 응용들의 목록 추출: 전력 소모 추정 도구가 생성하는 로그파일을 분석하여 추정 시간 동안 실행 실험을 위해 이용한 응용프로그램은 아래와 같다. 된 응용들의 목록을 출력하는 기능을 한다. MX Video: 비디오 플레이어 Angry Birds: 게임 응용 YouTube: VOD Streaming 응용 Web Browser: 기본 웹 브라우저 그림 4는 우리의 실험결과를 전력소모에 대한 추정에 대한 정확도를 CDF로 보여준다. 4(a)와 (b)는 Nexusone을 이용한 실험결과이다. (a)는 우리 프레임워크의 사용결과이며, (b)는 기존 PowerTutor를 사용한 결과이 그림 2 PowerTutorTrace의 동작 모습 다. 실험결과 (a)는 평균 89%의 정확도를 나타내며, (b)
스마트폰 응용프로그램 에너지 소모 분석을 위한 프레임워크 783 (a) (b) (c) 그림 4 전력 소모 추정의 오차를 나타낸 CDF (d) 는 평균 77%의 정확도를 보였다. 따라서 우리의 전력 모델은 12%의 정확도 향상을 보였다. 그림 4(c)와 그림 4(d)는 Desire와 Galaxy-S를 이용한 실험결과이다. 우 리의 전력 모델은 4개의 응용프로그램에 대해서 각각 평균 82%와 평균 73%의 정확도를 보인다. Nexus-one의 전력 모델과 달리 Desire와 Galaxy-S 의 전력 모델이 정확도가 떨어지는 이유는 사용 패턴 생성기와 PowerDoctor를 이용한 사용패턴 수집이 부족 했기 때문이다. 실제로 전력 모델 생성을 위해 Nexusone은 사용 패턴을 약 1000개 이상을 수집하였고, Desire 와 Galaxy-S는 각각 약 400개, 150개를 수집하였다. 따 라서 개발자가 Nexus-one 만큼 사용 패턴을 수집한다 면 정확도 80% 이상의 전력 모델을 만들 수 있다. 4. 관련연구 이 장에서는 본 연구와 관련성이 높은 연구들을 전력 모델 생성에 관한 연구와 분석 도구에 관한 연구로 나 누어 설명한다. 4.1 전력 모델 생성 스마트폰의 전력 모델을 생성하는 방법은 수동과 자 동방법으로 구분된다. 이전의 연구[1,5]는 외부 계측 장 비를 이용한 수동 전력 모델 생성 방법이다. A. Shye et al. [1]의 경우 이용률 기반의 전력 모델이다. P. Abhinav et al. [5]의 경우 시스템 콜 기반의 전력모델이다. 두 방법 모두 외부 계측 장비를 이용해서 수동으로 전력 모델을 생성해서 스마트폰의 전력 소모를 분석했기 때 문에 다양한 스마트폰에 적용하기에는 어려움이 있다. 이와 반대로 이전의 연구[2,3,6-8]은 자동으로 전력 모델을 생성하는 방법이다. L. Zhang et al. [2]의 연구 는 배터리 내부 센서와 배터리 전압 감소 곡선을 이용 해서 정확도 높은 전력 모델을 생성하여 스마트폰의 전 력 소모를 측정하는 방법을 제안했다. K. Minyong[8]의 연구는 [2]에서의 전력 모델을 개선시켜서 멀티코어와 최신Display에 대해서도 높은 정확도를 보장한 연구이 다. 이 두 연구들은 정확도 높은 전력 모델을 생성하기 위해서 트레이닝 프로그램과 배터리 감소 곡선을 생성 해야 되는 의존성을 가진다. 이와 다른 방식으로 [3]에 서는 사용자 사용 패턴과 내부 센서만을 이용해서 전력 모델을 생성하는 방법을 제안했다. 이 방법은 사용 패턴 수집에 따른 많은 시간적 손실을 발생시킨다. M. Dong 과 L. Zhong. [6]의 경우 외부 계측장비 없이 100Hz의 높은 주기로 전력소모를 측정할 수 있는 방법을 제안 했다. [6]의 방법으로 생성된 전력 모델은 스마트폰 전 체 전력 소모만을 측정할 수 있다. C. Yoon et al. [7] 은 내부 센서의 낮은 갱신 주기를 극복하기 위해서 특 별한 시나리오를 만들어서 자동으로 전력 모델을 생성 하는 방법을 제안하였다. [7]에서는 정확도를 높이기 위 해서 스마트폰 내부의 전류 센서를 이용했다.
784 정보과학회논문지 : 컴퓨팅의 실제 및 레터 제 18 권 제 11 호(2012.11) 우리가 제안한 방법은 자동 전력 모델 생성으로 전류센 서나 배터리 감소 곡선에 의존하지 않고 어떤 스마트폰에 나 있는 전압센서와 배터리 레벨 지시자만을 이용한다. 또한 [3]에서의 패턴 수집에 따른 시간 손실을 보완하기 위해서 사용패턴 생성기를 이용하며, 스마트폰 전체가 아 닌 하드웨어 컴포넌트 단위의 전력 모델을 생성한다. 4.2 분석도구 스마트폰의 응용프로그램 전력 소모를 분석할 수 있 는 도구는 Eprof[9], AppScope[10], PowerTutor[4]들 이 있다. Eprof의 경우 시스템 콜에 기반한 프로파일링 도구이기 때문에 상세한 분석이 가능하다. 그러나 현재 까지는 Eprof은 I/O장치에 대해서만 분석이 가능하며, 도구가 공개되어 있지 않은 상태이다. AppScope의 경 우 리눅스 커널 모듈로 개발된 도구로써 하드웨어 컴포 넌트 단위와 프로세스 단위로 상세 분석할 수 있다. AppScope의 경우 사용할 수 있도록 도구는 공개되어 있지만 아직까지 소스코드는 공개되어 있지 않다. 마지 막으로 PowerTutor는 안드로이드 응용프로그램으로 개 발된 도구이며, 하드웨어 컴포넌트 단위와 UID(UserID) 단위로 상세 분석이 가능하다. 또한 PowerTutor는 소 스코드가 공개되어 있다. 하지만 Nexus-one의 전력 모 델이 정확도가 떨어지며, 프로파일링 지연문제가 있다. 우리는 사용자가 접근하기 쉽고 소스코드가 공개된 PowerTutor를 확장하였다. 이를 통해서 PowerTutor의 정확도와 범용성을 높이고 PowerTutorTrace를 제공함 으로써 분석 기능을 향상시켰다. 5. 결론 및 향후 연구 본 연구는 간편하게 스마트폰에서의 전력 소모를 분 석 할 수 있는 프레임워크를 개발 했다. 우리의 프레임 워크는 전력 모델 생성기, 전력 소모 추정기, 추정 데이 터 분석기로 구성되어 지며 전력 소모 추정의 정확도는 Nexus-one, Desire, Galaxy-S에 대해서 각각 89%, 82% 73%의 평균 정확도를 가진다. 우리의 프레임워크 를 이용하면 개발자와 사용자는 스마트폰 응용프로그램 에 대한 전력 소모를 외부장치 사용없이 간편하게 분석 할 수 있으며 이를 통해서 전력소모에 최적화된 응용프 로그램을 개발하거나 선택할 수 있다. 현재 스마트폰의 하드웨어 컴포넌트들은 변화하고 있 다. 현재 우리는 멀티 코어 CPU와 GPU에 대한 전력 모델을 지원하고 있지 않고 있다. 따라서 최신 스마트폰 에서의 전력 분석을 위해서는 이러한 새로운 하드웨어 컴포넌트들에 대한 지원이 필요하다. 참 고 문 헌 [1] A. Shye, et al., "Into the wild: studing real user activity patterns to guide power optimizations for mobile architectures," in Proc. Int. Symp. Microarchitecture, pp.168-178, 2009. [2] L. Zhang, et al., "Accurate online power estimation and automatic battery behavior based power model generation for smartphones," in IEEE/ACM, CODES /ISSS, pp.105-114, 2010. [3] L. Jaymin, et al, "Smart Phone Power Model Generation Using Use Pattern Analysis," IEEE International Conference on Consumer Electronics, Jan, 2012. [4] PowerTutor, http://ziyang.eecs.umich.edu/projects/ powertutor/ [5] P. Abhinav, et al., "Fine-grained power modeling for smartphones using system call tracing," Euro- Sys'11, pp.153-168, Apr. 2011. [6] M. Dong and L. Zhong, "Self-constructive highrate system energy modeling for battery-powered mobile systems," MobiSys'11, pp.335-348, 2011. [7] W. Jung, et al., "DevScope: A Nonintrusive and Online Power Analysis for Smartphone Hardware Components," CODES/ISSS, 2012. [8] K. Minyong, et al., "An Online Power Estimation Technique for Multi-Core Smartphones with Advanced Display Components," IEEE International Conference on Consumer Electronics, Jan, 2012. [9] P. Abhinav, et al., "Where is the energy spent inside my app? Fine Grained Energy Accounting on Smartphones with Eprof," EuroSys 12, pp.29-42, 2012. [10] C. Yoon, et al., "AppScope: Application Energy Metering Framework for Android Smartphone using Kernel Activity Monitoring," USENIX ATC'12.