KR20210107485A - 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법 - Google Patents

전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법 Download PDF

Info

Publication number
KR20210107485A
KR20210107485A KR1020200022567A KR20200022567A KR20210107485A KR 20210107485 A KR20210107485 A KR 20210107485A KR 1020200022567 A KR1020200022567 A KR 1020200022567A KR 20200022567 A KR20200022567 A KR 20200022567A KR 20210107485 A KR20210107485 A KR 20210107485A
Authority
KR
South Korea
Prior art keywords
processing unit
phase
event
current time
values
Prior art date
Application number
KR1020200022567A
Other languages
English (en)
Other versions
KR102379026B1 (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 KR1020200022567A priority Critical patent/KR102379026B1/ko
Publication of KR20210107485A publication Critical patent/KR20210107485A/ko
Application granted granted Critical
Publication of KR102379026B1 publication Critical patent/KR102379026B1/ko

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/3234Power saving characterised by the action undertaken
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

본 개시의 기술적 사상에 의한 일 양태에 따르면, 전자 장치에 포함된 프로세싱 유닛의 소모 전력을 산출하는 방법으로서, 현재 시간 구간 동안 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득하는 단계와, 프로세싱 유닛에 대해 미리 구분된 복수의 페이즈(phase)들 중 이벤트 값들에 기초하여 현재 시간 구간의 페이즈를 선택하는 단계와, 선택된 페이즈에 기초하여 전력 모델을 구성하는 단계, 및 구성된 전력 모델에 따라 현재 시간 구간에서의 프로세싱 유닛의 소모 전력을 산출하는 단계를 포함하는 방법이 개시된다.

Description

전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법{ELECTRONIC DEVICE AND METHOD FOR CALCULATING POWER COMSUMPTION FOR PROCESSING UNIT THEREOF}
본 개시(disclosure)의 기술적 사상은 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법에 관한 것으로, 보다 상세하게는, 높은 정확도로 프로세싱 유닛의 전력 소모량을 분석할 수 있는 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법에 관한 것이다.
스마트폰 등을 포함하는 현대의 전자 장치는 온-디바이스(on-device) AI(artificial intelligence), 생체 인식, 게이밍(gaming) 등의 역할을 수행하기 때문에 요구되는 연산량이 크지만, 배터리의 용량 증가는 제한적인 모습을 보여주고 있다.
전자 장치의 제한적인 배터리 용량, 즉 전력 하에서 사용자의 장시간 사용을 가능하게 하기 위해서는, 전력 소모량을 줄이고 또 효율적으로 전력을 관리해줄 필요성이 있다. 특히, 전자 장치에서 많은 연산이 프로세싱 유닛, 구체적으로 중앙 프로세싱 유닛(central processing unit, CPU) 및 그래픽 프로세싱 유닛(graphic processing unit, GPU)에서 수행되기 때문에, CPU 및 GPU의 전력소모량 저감과 관리가 중요해진다.
이를 위해서, 제조사는 우선적으로 CPU 및 GPU에서 소모되는 전력을 상황에 따라 면밀하게 분석할 필요가 있다. 그러나, CPU 및 GPU는 AP(Application Processor)라는 이름으로 단일 칩에 집적회로로써 포함되도록 설계되는 경우가 많으므로, 이들이 소모하는 전력을 측정하기 위해 추가적인 센서를 집적회로에 포함시키는 것은 매우 힘든 일이다.
따라서, 별도의 센서 없이도 프로세싱 유닛의 소모 전력을 정확하게 추정할 수 있는 전력 모델이 필수적이다.
본 개시의 기술적 사상에 따른 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법이 이루고자 하는 기술적 과제는, 높은 정확도로 프로세싱 유닛의 소모 전력을 분석할 수 있도록 하는데 있다.
본 개시의 기술적 사상에 따른 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 개시의 기술적 사상에 의한 일 양태에 따르면, 전자 장치에 포함된 프로세싱 유닛의 소모 전력을 산출하는 방법으로서, 현재 시간 구간 동안 상기 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득하는 단계; 상기 프로세싱 유닛에 대해 미리 구분된 복수의 페이즈(phase)들 중 상기 이벤트 값들에 기초하여 상기 현재 시간 구간의 페이즈를 선택하는 단계; 상기 선택된 페이즈에 기초하여 전력 모델을 구성하는 단계; 및 상기 구성된 전력 모델에 따라 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 소모 전력을 산출하는 단계;를 포함하는 방법이 개시된다.
예시적인 실시예에 따르면, 상기 프로세싱 유닛은, 중앙 프로세싱 유닛을 포함하고, 상기 방법은, 상기 획득하는 단계 전에, 이전 시간 구간들에서의 상기 프로세싱 유닛의 페이즈에 기초하여 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 페이즈를 예측하는 단계;를 더 포함할 수 있고, 상기 이벤트 값들을 획득하는 단계는, 상기 프로세싱 유닛의 동작 중에 발생 가능한 이벤트들 중 상기 예측된 페이즈에 대해 미리 설정된 이벤트들의 이벤트 값들을 획득하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 전력 모델을 구성하는 단계는, 상기 예측된 페이즈와 상기 선택된 페이즈가 서로 동일하면, 상기 현재 시간 구간 동안 획득된 이벤트 값들을 입력 값으로 이용하는 제1 전력 모델을 구성하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제1 전력 모델은 하기의 수학식 1에 해당하며,
[수학식 1]
Figure pat00001
상기 수학식 1에서,
Figure pat00002
는 소모 전력,
Figure pat00003
는 클럭 카운터(clock counter)를 통해 획득된 값,
Figure pat00004
은 상기 현재 시간 구간 동안 획득된 이벤트 값,
Figure pat00005
Figure pat00006
은 회귀 계수(regression coefficient)일 수 있다.
예시적인 실시예에 따르면, 상기 전력 모델을 구성하는 단계는, 상기 예측된 페이즈와 상기 선택된 페이즈가 서로 상이하면, 상기 현재 시간 구간 동안 획득된 이벤트 값들 중 미리 결정된 기준 이벤트들의 이벤트 값들을 입력 값으로 이용하는 제2 전력 모델을 구성하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 제2 전력 모델은 하기의 수학식 2에 해당하며,
[수학식 2]
Figure pat00007
상기 수학식 2에서,
Figure pat00008
는 소모 전력,
Figure pat00009
는 클럭 카운터(clock counter)를 통해 획득된 값,
Figure pat00010
은 상기 기준 이벤트들의 이벤트 값,
Figure pat00011
Figure pat00012
은 회귀 계수일 수 있다.
예시적인 실시예에 따르면, 상기 페이즈를 예측하는 단계는, 이전 시간 구간들 동안 획득된 기준 이벤트들의 이벤트 값들을, 상기 이전 시간 구간들에서의 상기 프로세싱 유닛의 페이즈에 기초하여 분류하는 단계; 상기 페이즈에 따라 분류된 이벤트 값들을 가중합하는 단계; 및 상기 가중합의 결과 값 중 최대 값에 대응하는 페이즈를 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 페이즈로 예측하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 이전 시간 구간들 동안 획득된 기준 이벤트들의 이벤트 값들에 적용될 가중치는, 상기 현재 시간 구간과 이전 시간 구간 사이의 차이에 따라 결정될 수 있다.
예시적인 실시예에 따르면, 상기 프로세싱 유닛은, 중앙 프로세싱 유닛을 포함하고, 상기 페이즈를 선택하는 단계는, 상기 이벤트 값들 중 기준 이벤트들의 이벤트 값들로부터 메모리 관련 명령어의 비율, 및 캐시 미스(cache miss)의 비율을 산출하는 단계; 및 메모리 관련 명령어의 비율, 및 캐시 미스의 비율에 따라 구분된 상기 복수의 페이즈 중 상기 산출된 메모리 관련 명령어의 비율 및 캐시 미스의 비율에 대응하는 페이즈를 상기 현재 시간 구간의 페이즈로 선택하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 프로세싱 유닛은, 그래픽 프로세싱 유닛(graphic processing unit)을 포함하고, 상기 현재 시간 구간의 페이즈를 선택하는 단계는, 상기 획득된 이벤트 값들로부터 상기 프로세싱 유닛을 구성하는 서브 유닛들의 가동률을 산출하는 단계; 및 서브 유닛에 따라 구분된 상기 복수의 페이즈 중 가장 큰 가동률을 갖는 서브 유닛에 대응하는 페이즈를 상기 현재 시간 구간의 페이즈로 선택하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 전력 모델을 구성하는 단계는, 상기 획득된 이벤트 값들 중 유전 알고리즘에 따라 선택된 일부의 이벤트 값들을 입력 값으로 이용하는 상기 전력 모델에 따라 상기 소모 전력을 산출하는 단계;를 포함할 수 있다.
예시적인 실시예에 따르면, 상기 전력 모델은 하기의 수학식 3에 해당하며,
[수학식 3]
Figure pat00013
상기 수학식 3에서,
Figure pat00014
는 소모 전력,
Figure pat00015
Figure pat00016
은 상기 현재 시간 구간 동안 획득된 이벤트 값,
Figure pat00017
Figure pat00018
은 회귀 계수이고, N은 M+1보다 클 수 있다.
예시적인 실시예에 따르면, 상기 소모 전력을 산출하는 단계는, 상기 유전 알고리즘에 따라, 상기 획득된 이벤트 값들을 상기
Figure pat00019
으로 할당될 이벤트 값,
Figure pat00020
으로 할당될 이벤트 값 또는 입력 값으로 이용되지 않는 이벤트 값으로 분류하는 단계;를 포함할 수 있다.
본 개시의 기술적 사상에 의한 일 양태에 따르면, 전자 장치는, 프로세싱 유닛; 및 상기 프로세싱 유닛의 소모 전력을 산출하는 분석부를 포함하고, 상기 분석부는, 현재 시간 구간 동안 상기 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득하는 카운터; 상기 프로세싱 유닛에 대해 미리 구분된 복수의 페이즈들 중 상기 이벤트 값들에 기초하여 상기 현재 시간 구간의 페이즈를 선택하는 페이즈 결정부; 및 상기 선택된 페이즈에 기초하여 구성된 전력 모델에 따라 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 소모 전력을 산출하는 산출부를 포함할 수 있다.
본 개시의 기술적 사상에 의한 일 양태에 따르면, 전자 장치는, 제1 프로세싱 유닛; 제2 프로세싱 유닛; 및 상기 제1 프로세싱 유닛과 상기 제2 프로세싱 유닛의 소모 전력을 산출하는 분석부를 포함하고, 상기 분석부는, 현재 시간 구간 동안 상기 제1 프로세싱 유닛과 상기 제2 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득하는 카운터; 상기 제1 프로세싱 유닛과 상기 제2 프로세싱 유닛 각각에 대해 미리 구분된 복수의 페이즈 중 상기 제1 프로세싱 유닛의 페이즈와 상기 제2 프로세싱 유닛의 페이즈를 상기 이벤트 값들에 기초하여 독립적으로 선택하는 페이즈 결정부; 및 상기 제1 프로세싱 유닛의 페이즈에 따라 구성된 전력 모델과 상기 제2 프로세싱 유닛의 페이즈에 따라 구성된 전력 모델을 이용하여 상기 제1 프로세싱 유닛 및 상기 제2 프로세싱 유닛의 소모 전력을 산출하는 산출부;를 포함할 수 있다.
본 개시의 기술적 사상에 의한 실시예들에 따른 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법은, 높은 정확도로 프로세싱 유닛의 소모 전력을 분석할 수 있는 효과가 있다.
또한, 전력 소모를 줄이기 위한 다양한 기법들에 응용되거나, 실제 배터리 잔량의 예측을 위한 배터리 모델의 계산에 사용되는 등 다양하게 활용될 수 있는 효과가 있다.
본 개시의 기술적 사상에 따른 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법이 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 개시의 기술적 사상에 의한 일 실시예에 따른 전자 장치의 일부 구성을 개략적으로 나타낸 도면이다.
도 2는 본 개시의 기술적 사상에 의한 일 실시예에 따른 분석부의 일부 구성을 개략적으로 나타낸 도면이다.
도 3a는 본 개시의 기술적 사상에 의한 일 실시예에 따라 CPU의 소모 전력을 산출하는 과정을 나타내는 도면이다.
도 3b는 본 개시의 기술적 사상에 의한 일 실시예에 따라 GPU의 소모 전력을 산출하는 과정을 나타내는 도면이다.
도 4는 본 개시의 기술적 사상에 의한 일 실시예에 따라 CPU 및 GPU에 대해 구분된 복수의 페이즈를 나타내는 표이다.
도 5는 메모리 관련 명령어의 비율, 및 캐시 미스의 비율에 따라 구분된 CPU의 복수의 페이즈를 나타내는 도면이다.
도 6은 본 개시의 기술적 사상에 의한 일 실시예에 따라 GPU의 전력 모델을 구성하는데 이용될 이벤트들을 선택하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 기술적 사상에 의한 일 실시예에 따른 전자 장치의 프로세싱 유닛의 소모 전력을 산출하는 방법을 설명하기 위한 흐름도이다.
도 8은 본 개시의 기술적 사상에 의한 다양한 실시예에 따른 전력 모델에 기초한 프로세싱 유닛의 소모 전력 산출 방법의 효과를 비교한 표이다.
도 9 및 도 10은 종래의 소모 전력 산출 방법의 부정확성을 설명하기 위한 도면들이다.
본 개시의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세히 설명하고자 한다. 그러나, 이는 본 개시의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 개시의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 개시의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 개시에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 개시에 기재된 "~부", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 프로세서(Processor), 마이크로 프로세서(Micro Processer), 마이크로 컨트롤러(Micro Controller), CPU(Central Processing Unit), GPU(Graphics Processing Unit), APU(Accelerate Processor Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등과 같은 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
그리고 본 개시에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 개시의 기술적 사상에 따른 실시 예들을 설명하기 전에 종래의 소모 전력 산출 방법에 대해 설명한다.
종래의 소모 전력 산출 방법들에서는 프로세싱 유닛의 소모 전력을 추정하기 위해 선형 회귀(lineage regression)를 이용하고 있다. 선형 회귀는 종속변수(dependent variable)와 독립변수(predictor) 간의 상관관계를 선형으로 모델링하는 기법이다.
초기 기술인 Yoon (Tech. Rep., 2013) 및 Zhang (Tech. Rep., 2013)의 기술에서 선형회귀가 CPU의 전력 모델 구성 시 훌륭하게 사용될 수 있음을 보였기 때문에 이후에 기술들에서도 선형 회귀 모델이 사용되어 왔다.
선형 회귀 전력모델에서 사용되는 회귀식은 하기의 수학식 1과 같은 형태를 보인다.
Figure pat00021
수학식 1에서
Figure pat00022
는 독립변수를 의미하고
Figure pat00023
는 데이터로부터 추정되어야 할 회귀 계수(regression coefficient)이다.
Figure pat00024
로서 어떤 값을 사용하냐에 따라
Figure pat00025
의 의미가 달라진다.
가용(Utilization) 기반의 전력모델 기술에서는 독립변수
Figure pat00026
로서 프로세싱 유닛의 가용 값이 사용된다. Yoon (Tech. Rep., 2013) 및 Zhang (Tech. Rep., 2013)은 CPU에 대해, Kim (ETRI journal, 2015)은 GPU에 대해 전력모델을 완성한 후 검증하였다. 가용(Utilization)은 하기의 수학식 2와 같이 정의된다.
Figure pat00027
가용 값은 프로세싱 유닛이 점유된 시간 비율로서 단위가 없다. 이 때문에 독립변수로서 가용 값을 사용하는 기술들에서
Figure pat00028
가 가지는 의미는 프로세싱 유닛이 소모할 수 있는 최대 전력을 나타낸다. 하지만 가용 기반 모델은 모델의 정확도에서 PMC(Performance Monitoring Counter) 기반 모델에 비해 크게 뒤처지면서 점차 PMC 기반 모델로 대체되었다.
PMC 기반 전력 모델 기술에서는 PMC에서 수집된 이벤트 값을 그대로 사용하거나 변형한 후 독립변수로서 사용한다. PMC는 프로세싱 유닛의 내부에서 일어나는 여러가지 이벤트가 몇 번 일어났는지 셀 수 있는 물리적인 하드웨어 카운터(hardware counter)이기 때문에, 여기서 수집된 이벤트 값은 독립변수로서 훌륭한 역할을 수행할 수 있었다.
다음은 PMC에 기반한 세 가지 전력모델 기술에 관해 설명한다.
첫 번째로, Pricopi(International Conference on Compilers, Architecture and Synthesis for Embedded Systems, 2013)의 기술에서는 수학식 3과 같은 회귀식을 사용하여 CPU 전력모델을 완성하였다.
Figure pat00029
수학식 3에서
Figure pat00030
,
Figure pat00031
Figure pat00032
는 각각 수집된 전체 이벤트 개수, 정수 연산에 관련한 이벤트 개수, 부동소수점 연산에 관련한 이벤트 개수를 의미하고
Figure pat00033
는 clock cycles per instruction을 의미한다.
Figure pat00034
,
Figure pat00035
Figure pat00036
는 각각 L1 data 캐시에 관련한 이벤트 개수, L2 캐시에 관련한 이벤트 개수, L2 캐시미스에 관련한 이벤트 개수를 나타낸다.
수학식 3에서 앞의 3개의 독립변수는 CPU 파이프라인에 관련한 전력을 추정하는 독립변수이고 뒤의 3개의 독립변수는 메모리 시스템에 관련한 전력을 추정하는 독립변수로 사용된다.
두 번째로, Jin(Workshop on Mobile Gaming, 2015)의 기술에서는 GPU 내부의 processing pipeline을 엔지니어가 분석한 후 pipeline을 구성하는 대표적인 유닛들의 가용 값을 독립변수로 사용하였다. Jin의 기술에서 사용하는 전력모델의 회귀식은 수학식 4와 같다.
Figure pat00037
수학식 4에서 U, V, T는 각각 GPU 가용 값, vertex processing unit의 가용 값, pixel processing unit의 가용 값을 나타낸다. 본 기술에서는 독립변수로써 가용 값을 이용하였지만, 더욱 세분화된 가용 값이 사용되었다는 점 및 각 유닛들의 가용 값을 구하기 위해 PMC가 사용되었다는 점에서 과도기적 성격을 갖는다.
세 번째로, Walker(Transactions on Computer-Aided Design of Integrated Circuits and Systems, 2016)의 기술에서는 수학식 5와 같은 회귀식을 사용하여 전력모델을 완성한다.
Figure pat00038
CMOS(Complementary metal oxide semiconductor) 소자의 동적 전력(dynamic power)이
Figure pat00039
임을 고려한다면, 프로세싱 유닛의 동적 주파수가 바뀌는 상황에서도 강인한 전력모델을 만들기 위해 수학식 5와 같은 회귀식이 사용되었다. 본 기술에서는 PMC로부터 수집된 이벤트 값을 수집하는데 소요된 시간으로 나눠준 후 독립변수로써 사용된다.
또한 Pricopi의 모델 및 Jin의 모델에서는 독립변수로서 사용될 이벤트를 엔지니어가 직접 수동으로 설정했었는데, 본 모델에서는 전력모델을 구성하는데 있어 최적의 독립변수를 자동으로 정하는 기술이 도입되었다.
결국, 종래기술인 가용 값 기반의 전력모델 및 PMC 기반의 전력모델에서는 공통적으로 수학식 1과 같은 형태의 선형 회귀식을 정한 후, 워크로드를 수행하면서 회귀에 사용할 데이터를 수집한다. 그 다음, 수집된 데이터를 이용해서 회귀식의 회귀 계수를 결정함으로써 프로세싱 유닛의 전력모델을 완성하게 된다.
종래 기술들에서는 프로세싱 유닛의 동작 상태를 고려하지 않고 오직 한 개의 전력 모델만을 사용했다는 점에 한계점이 있다. 종래 기술들에서는 60여 개의 워크로드를 프로세싱 유닛에서 수행시킨 후, 이들 워크로드들로부터 평균적으로 우수한 전력 모델을 만들 수 있는 독립변수를 선정한다. 이렇게 선정된 독립변수로 만들어진 전력 모델은 워크로드들 전체를 봤을 때 평균적으로는 우수한 전력모델을 만들어낼 수는 있어도 각 워크로드 개별적으로 봤을 때는 최상의 결과를 만들어내지는 못한다. 예를 들어, 메모리 동작이 전혀 일어나지 않는 워크로드가 수행될 때 캐시 미스 및 캐시 접근 수와 같은 이벤트는 전력을 계산하는데 전혀 도움이 되지 않기 때문에 독립변수로서의 역할을 하지 못한다. 
종래 기술들의 한계에 대해 도 9 및 도 10을 참조하여 설명한다.
두 종류의 워크로드들을 준비하기 위해 먼저 78개의 워크로드들을 Cortex-A53 코어에서 실행한 후 각 워크로드에 대해 LDST inst 비율 값을 계산하였다. LDST inst 비율은 수학식 6과 같이 정의된다.
Figure pat00040
모든 워크로드 중 LDST inst 비율 값이 가장 낮은 상위 3개 워크로드를 그룹 A로, LDST inst 비율 값이 가장 높은 상위 3개 워크로드를 그룹 B로 분류하였다. 그룹 A는 LDST inst 비율 값이 낮으므로 CPU가 메모리 시스템을 거의 사용하지 않는 CPU 워크로드를 의미하고, 그룹 B는 LDST inst 비율 값이 높으므로 CPU가 메모리 시스템을 많이 사용하는 MEM 워크로드를 의미한다.
도 9에는 세 개의 이벤트 세트의 상세가 도시되어 있다. 이벤트들 중 CPU 내부 파이프라인 동작에 관련된 이벤트를 CPU_EV라고 참조하고, CPU의 메모리 시스템 사용과 관련된 이벤트를 MEM_EV라고 참조한다. 도 9에서 MEM_EV는 굵은 글씨로 표기되어 있다.
이벤트 세트 1은 CPU_EV가 4개, MEM_EV 2개이다. 이벤트 세트 1에는 CPU_EV의 개수가 많기 때문에 본 이벤트 세트를 독립변수로 사용하여 전력모델을 구성했을 때 그룹A(CPU 워크로드)에서 좋은 성능이 예상된다. 반대로, 이벤트 세트 3은 CPU_EV가 2개 MEM_EV가 4개이다. 이벤트 세트 3을 독립변수로 사용하여 전력 모델을 구성했을 때 그룹B(MEM 워크로드)에서 좋은 성능이 예상된다.
도 10은 각 이벤트 세트를 독립변수로 이용하여 구성된 전력 모델이 CPU 워크로드와 MEM 워크로드에서 어떠한 결과를 나타내는지를 MAPE(Mean Average Percentage Error)로 나타내고 있다.
먼저 CPU_EV 및 MEME_EV 개수가 3개씩인 이벤트 세트 2는 CPU 워크로드와 MEM 워크로드에서 모두 수용할 수 있는 결과를 보여주었지만, 그 결과가 어느 한 쪽에서도 훌륭하지 못하다. 반면, CPU_EV 개수가 많은 이벤트 세트 1은 그룹A에 해당하는 워크로드에서 훌륭한 결과를 보여주고, MEM_EV 개수가 많은 이벤트 세트 3는 그룹 B에 해당하는 워크로드에서 훌륭한 결과를 보여준다. 즉, 종래 기술들에서 이용된 전력 모델로는 여러 워크로드 조건에서 CPU와 GPU의 소모 전력을 정확하게 측정하지 못한다는 한계가 있다.
이하, 본 개시의 기술적 사상에 따른 실시 예들을 설명한다.
도 1은 본 개시의 기술적 사상에 의한 일 실시예에 따른 전자 장치(100)의 일부 구성을 개략적으로 나타낸 도면이다.
전자 장치(100)는 통신부(110), 출력부(120), 사용자 입력부(130), 전력 공급부(140), 메모리(150), 인터페이스부(160), 제어부(170) 및 분석부(180)를 포함할 수 있다. 도 1에 도시된 전자 장치(100)는 스마트 폰, 태블릿 PC 등과 같은 모바일 기기일 수 있으나, 이에 한정되는 것은 아니다. 예를 들어, 전자 장치(100)는 데스크탑 PC일 수 있다.
도 1에 도시된 구성요소들이 필수적인 것은 아니어서, 전자 장치(100)는 그보다 많은 구성요소들을 갖거나 그보다 적은 구성요소들을 갖는 장치로 구현될 수도 있다. 이하, 상기 구성요소들에 대해 차례로 살펴본다.
통신부(110)는 전자 장치(100)와 다른 장치 사이의 통신을 가능하게 하는 하나 이상의 부를 포함할 수 있다. 예를 들어, 통신부(110)는 수신기(112), 송신기(114) 등을 포함할 수 있다. 수신기(112)는 소정의 통신 채널을 통하여 상기 다른 장치로부터 송신되는 신호를 수신한다. 여기서, 다른 장치로부터 송신되는 신호에는, 다른 장치의 단말기 정보를 가지고 있는 신호 및 각종 데이터를 가지고 있는 신호들을 포함할 수 있다. 송신기(114)는 각종 정보를 포함하는 신호를 외부로 전달할 수 있으며, 다른 장치가 특정 기능을 수행하도록 명령 정보를 가진 신호를 전송할 수 있다.
출력부(120)는 시각, 청각 등과 관련된 출력을 발생시키기 위한 것으로, 디스플레이부(122), 음향 출력부(도시 생략) 등을 포함할 수 있다.
디스플레이부(122)는 디스플레이 모듈을 포함할 수 있다. 디스플레이 모듈은 디스플레이 패널 및 디스플레이 구동부를 포함할 수 있다. 디스플레이 구동부는 픽셀을 구동할 수 있고, 아날로그 회로나 디지털 회로로 구성될 수 있다. 디스플레이부(122)는 전자 장치(100)에서 처리되는 각종 정보를 이미지, 동이미지 또는 텍스트로 출력한다. 디스플레이부(122)는, 예를 들어, AMOLED 디스플레이로 이루어질 수 있다. 여기서, AMOLED 디스플레이는 평면, 플렉서블 형태를 포함하는 개념이며, AMOLED 디스플레이와 유사한, AMOLED 디스플레이를 개량한 형태의 OLED(Organic Light-Emitting Diode) 디스플레이를 포함할 수 있다.
사용자 입력부(130)는 사용자의 제어에 따라 전자 장치(100)의 동작을 위한 입력 데이터를 발생시킨다. 사용자 입력부(130)는 키 패드(key pad) 돔 스위치 (dome switch), 터치 패드(정압/정전), 조그 휠, 조그 스위치 등으로 구성될 수 있다.
전원 공급부(140)는 외부의 전원, 내부의 배터리(도시 생략)로부터 인가되는 전원을 기초로 각 구성요소들로 동작에 필요한 전원을 공급한다.
메모리(150)는 적어도 하나의 프로그램을 저장할 수 있고, 입/출력되는 데이터들을 임시 저장할 수도 있다. 예를 들면, 메모리(150)는 후술되는 전자 장치(100)의 분석부(180)의 소모 전력 분석 방법을 수행하기 위한 적어도 하나의 프로그램 등을 저장할 수 있다.
메모리(150)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(ReadOnly Memory, ROM), EEPROM(Electrically Erasable Programmable ReadOnly Memory), PROM(Programmable ReadOnly Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체 일 수 있다.
인터페이스부(160)는 전자 장치(100)에 연결되는 모든 외부기기와의 통신적 연결을 위한 수단으로 기능한다.
제어부(170)는 통상적으로 전자 장치(100)의 전반적인 동작을 제어한다. 제어부(170)는 프로세싱 유닛으로 구현될 수 있다. 일 실시예에서, 프로세싱 유닛은 중앙 프로세싱 유닛(central processing unit, 이하, CPU) 및 그래픽 프로세싱 유닛(graphic processing unit, 이하, GPU) 중 적어도 하나를 포함할 수 있다.
분석부(180)는 프로세싱 유닛의 소모 전력을 분석한다. 분석부(180)는 소모 전력의 분석 결과를 출력부(120)를 통해 출력하거나, 통신부(110)를 통해 다른 장치로 분석 결과를 전송할 수 있다.
도 1은 제어부(170)와 분석부(180)를 별개의 모듈로 도시하고 있으나, 분석부(180)는 제어부(170)에 포함될 수도 있다. 분석부(180)에 대해서는 이하에서 도 2를 참조하여 더 상세히 설명한다.
도 2는 본 개시의 기술적 사상에 의한 일 실시예에 따른 분석부(180)의 일부 구성을 개략적으로 나타낸 도면이다.
도 2를 참조하면, 분석부(180)는 카운터(182), 페이즈 결정부(184) 및 산출부(186)를 포함할 수 있다.
도 2에 도시된 구성요소들이 필수적인 것은 아니어서, 분석부(180)는 그보다 많은 구성요소들을 갖거나 그보다 적은 구성요소들로 구현될 수 있음은 물론이다.
카운터(182)는 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득할 수 있다. 카운터(182)는 프로세싱 유닛의 내부에서 이벤트가 몇 번 일어났는지 셀 수 있는 물리적인 하드웨어 카운터(hardware counter)일 수 있다. 카운터(182)는 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 횟수를 이벤트 값으로 획득할 수 있다.
페이즈 결정부(184)는 프로세싱 유닛에 대해 미리 구분된 복수의 페이즈 중 어느 하나의 페이즈를 선택할 수 있다. 페이즈 결정부(184)는 현재 시간 구간, 예를 들어, 50ms 동안 획득된 이벤트 값들에 기초하여 현재 시간 구간 동안 프로세싱 유닛이 어떤 페이즈에 있었는지를 결정할 수 있다. 페이즈 결정부(184)는 미리 결정된 시간 구간마다 프로세싱 유닛의 페이즈를 결정할 수 있다.
전술한 바와 같이, 프로세싱 유닛이 어떠한 종류의 워크로드를 수행하는지에 따라 서로 다른 동작 상태에 있으므로, 프로세싱 유닛의 동작 중에 발생하는 이벤트들을 분석하여 프로세싱 유닛이 어떠한 동작 상태에 있는지를 분석하는 것이 필요하다.
산출부(186)는 페이즈 결정부(184)에 의해 선택된 페이즈에 기초하여 전력 모델을 구성하고, 현재 시간 구간에서의 프로세싱 유닛의 소모 전력을 산출한다.
일 실시예에서는, 소모 전력을 산출하기 위한 전력 모델이 페이즈에 따라 달라질 수 있다는 점에서 종래 기술들과 차별점이 있다. 즉, 프로세싱 유닛의 현재 시간 구간에서의 동작 상태를 고려하여 최적의 전력 모델을 구성하고, 구성된 전력 모델을 통해 프로세싱 유닛의 소모 전력을 산출하기 때문에 워크로드의 종류와 무관하게 항상 최적의 전력 소모량을 분석할 수 있다.
본 개시의 기술적 사상에 의한 일 실시예에 따르면, CPU 및 GPU에 따라 소모 전력이 개별적으로 산출될 수 있는데, CPU 및 GPU 각각의 소모 전력을 산출하는 방법에 대해 구체적으로 설명한다.
도 3a는 본 개시의 기술적 사상에 의한 일 실시예에 따라 CPU의 소모 전력을 산출하는 과정을 나타내고, 도 3b는 본 개시의 기술적 사상에 의한 일 실시예에 따라 GPU의 소모 전력을 산출하는 과정을 나타낸다.
도 3a를 참조하면, CPU의 소모 전력을 산출하기 위해, 페이즈 예측 과정(S305), 이벤트 세트 설정 과정(S310), 이벤트 수집 과정(S315), 페이즈 결정 과정(S320) 및 소모 전력 산출 과정(S325)이 수행된다.
또한, 도 3b를 참조하면, GPU의 소모 전력을 산출하기 위해, 이벤트 수집 과정(S350), 페이즈 결정 과정(S355) 및 소모 전력 산출 과정(S360)이 수행된다.
도 3a와 도 3b로부터 알 수 있듯이, GPU와 달리 CPU의 경우에는 페이즈 예측 과정(S305)과 이벤트 세트 결정 과정(S310)을 추가적으로 필요로 한다. 그 이유는 CPU에 대해 동시에 수집할 수 있는 이벤트의 개수가 제한되기 때문인데, 이에 대해서는 후술한다.
먼저, 페이즈 결정 과정(S320, S355)에 대해 도 4 및 도 5를 참조하여 설명한다.
도 4는 본 개시의 기술적 사상에 의한 일 실시예에 따라 CPU 및 GPU에 대해 구분된 복수의 페이즈를 나타내는 표이다.
CPU의 경우, CPU의 내부 자원을 사용하는 명령어를 수행할 때에 비해 메모리 관련 명령어를 수행할 때 소모 전력의 변화가 크게 나타난다. 따라서, CPU 내부의 자원 사용 비율이 어떻게 변화하는지에 집중하여 페이즈를 분리하는 것보다 CPU가 메모리 시스템을 얼마나, 어떻게 사용하는지에 더 집중해서 페이즈를 분리하는 것이 적합하다.
도 4를 참조하면, CPU가 메모리 시스템을 얼마나, 또 어떻게 사용하는지에 따라 총 5개의 페이즈로 구분될 수 있다.
CPU의 페이즈를 결정하기 위하여 도 5와 같은 결정 평면이 이용될 수 있다. 결정 평면에는 두 가지 기준 값이 이용되는데, 첫 번째로, 메모리 관련 명령어의 비율(MEM inst 비율)과 캐시 미스의 비율(Cache miss 비율)이다.
두 가지 기준 값에 따라 CPU에 대해 5개의 페이즈가 구분될 수 있다. 메모리 관련 명령어의 비율은 CPU가 메모리 시스템을 얼마나 많이 사용하는가를 나타낸다. 메모리 관련 명령어의 비율이 높으면, CPU의 페이즈는 Cache 페이즈 또는 DRAM(Dynamic random-access memory) 페이즈가 되고, 메모리 관련 명령어의 비율이 낮아지게 되면 CPU 페이즈가 된다.
캐시 미스의 비율은 메모리 시스템을 어떻게 사용하는가를 나타낸다. 캐시 미스의 비율이 높으면 메모리 계층구조에 의하여 CPU는 DRAM을 많이 사용하게 되므로, DRAM 페이즈 또는 CPU + DRAM 페이즈가 된다. 반대로 캐시 미스의 비율이 낮으면 cache 페이즈 또는 CPU + cache 페이즈가 된다.
페이즈 결정부(184)는 현재 시간 구간에서의 CPU의 페이즈를 결정하기 위해 현재 시간 구간 동안 획득된 이벤트 값들을 이용하여 현재 시간 구간에서의 메모리 관련 명령어의 비율과 캐시 미스의 비율을 산출할 수 있다.
페이즈 결정부(184)는 현재 시간 구간 동안 획득된 '실행한 전체 명령어 개수', '메모리 시스템에 관련된 명령어 개수' 및 '캐시 미스 개수'를 이벤트 값으로 획득하고, '실행한 전체 명령어 개수', '메모리 시스템에 관련된 명령어 개수' 및 '캐시 미스 개수'에 기초하여 메모리 관련 명령어의 비율 및 캐시 미스의 비율을 산출할 수 있다. 일 예로, 페이즈 결정부(184)는 메모리 관련 명령어의 비율 및 캐시 미스의 비율을 하기의 수학식 7에 따라 산출할 수 있다.
Figure pat00041
Figure pat00042
현재 시간 구간 동안의 메모리 관련 명령어의 비율과 캐시 미스의 비율이 산출되면, 페이즈 결정부(184)는 5개의 페이즈 중 현재 시간 구간에 부합하는 페이즈를 선택할 수 있다.
GPU의 경우에는, CPU보다 내부 파이프라인에서 소모하는 전력이 매우 크기 때문에 워크로드가 GPU 내부의 서브 유닛 중 어떤 서브 유닛의 사용을 주로 야기하는지에 따라 페이즈가 구분된다. 모바일 GPU의 경우 대표적으로 tiler, FFU(fixed function unit), Tripipe, memory의 네 개의 서브 유닛이 존재하기 때문에 GPU의 페이즈 또한 4개로 분리된다.
GPU의 페이즈를 결정하기 위해서 아래의 수학식 8과 같이 각 서브 유닛의 가용 값이 이용된다. 수학식 8에서 util은 가용 값을 의미한다. GPU의 PMC에서 수집할 수 있는 이벤트 값 중 각 서브 유닛의 가용 값을 계산 할 수 있는 이벤트가 존재하기 때문에 이들 이벤트를 이용하여 서브 유닛들의 가용 값이 산출된다.
페이즈 결정부(184)는 수학식 8과 같이 4개의 가용 값 중 최대 값에 해당하는 서브 유닛의 페이즈를 GPU의 페이즈로 선택한다.
Figure pat00043
이하에서는, 도 3a에 도시된 페이즈 예측 과정(S305) 및 이벤트 세트 설정 과정(S315)에 대해 설명한다.
전술한 바와 같이, GPU와 달리 CPU의 경우에는 현재 시간 구간의 페이즈를 결정하기 전에 페이즈의 예측 과정(S305)을 필요로 한다. 그 이유는 모바일 CPU의 경우, 동시에 수집할 수 있는 이벤트의 개수가 6개로 제한되어 있기 때문이다. 반면에 모바일 GPU의 경우에는 CPU와는 달리 185개에 이르는 모든 이벤트를 동시에 수집할 수 있기 때문에 페이즈마다 전력 모델에 필요한 값들을 항상 수집할 수 있다.
다시 말하면, GPU의 경우에는, 획득 가능한 이벤트들의 개수가 제한되지 않으므로, 페이즈 결정부(184)는 현재 시간 구간 동안 획득되는 이벤트 값들 중 GPU 내 각 서브 유닛의 가용 값을 산출하는데 이용되는 이벤트 값들을 통해 GPU의 페이즈를 결정할 수 있다. 하지만, CPU의 경우에는 획득 가능한 이벤트들의 개수가 제한되어 있으므로, 어떠한 이벤트들의 이벤트 값들을 현재 시간 구간 동안 획득하여야 하는지를 미리 결정하여야 한다.
현재 시간 구간의 CPU의 페이즈를 예측하기 위해, 페이즈 결정부(184)는 이전 시간 구간들에서의 CPU의 페이즈에 기초하여 현재 시간 구간에서의 페이즈를 예측한다. 일 실시예에서, 페이즈 결정부(184)는 deep-past 방법에 기초하여 현재 시간 구간의 페이즈를 예측할 수 있다.
구체적으로, 페이즈 결정부(184)는 이전 시간 구간들 동안 획득된 기준 이벤트들의 이벤트 값들을, 이전 시간 구간들에서의 페이즈에 기초하여 분류할 수 있다. 페이즈 결정부(184)는 현재 시간 구간의 페이즈를 예측하기 위해 예를 들어, 7개의 이전 시간 구간을 이용할 수 있다.
기준 이벤트들은 예를 들어, 전술한 '실행한 전체 명령어 개수', '메모리 시스템에 관련된 명령어 개수' 및 '캐시 미스 개수'일 수 있다. 기준 이벤트들은 CPU의 실제 페이즈를 결정하는데 이용되므로, CPU의 예측 페이즈가 무엇인지와 무관하게 항상 수집된다.
페이즈 결정부(184)는 페이즈에 따라 분류된 기준 이벤트들의 이벤트 값들을 가중 합하고, 가중 합의 결과 중 최대 값에 대응하는 페이즈를 현재 시간 구간의 페이즈로 예측할 수 있다.
예를 들면, 현재 시간 구간과 시간 차이가 적은 순서대로, 제1의 이전 시간 구간, 제2의 이전 시간 구간, 제3의 이전 시간 구간 및 제4의 이전 시간 구간이 현재 시간 구간의 페이즈를 예측하는데 이용되는 것으로 가정한다. 제1의 이전 시간 구간 및 제2의 이전 시간 구간의 페이즈가 CPU+CACHE 페이즈이고, 제3의 이전 시간 구간 및 제4의 이전 시간 구간의 페이즈가 CACHE 페이즈이면, 페이즈 결정부(184)는 제1 및 제2의 이전 시간 구간 동안 획득된 기준 이벤트들의 이벤트 값들을 가중 합하고, 제3 및 제4의 이전 시간 동안 획득된 기준 이벤트들의 이벤트 값들을 가중 합한다. 제1 및 제2의 이전 시간 구간 동안 획득된 이벤트 값들의 가중 합의 결과는 CPU+CACHE 페이즈에 대응하고, 제3 및 제4의 이전 시간 구간 동안 획득된 이벤트 값들의 가중 합의 결과는 CACHE 페이즈에 대응한다. 페이즈 결정부(184)는 CPU+CACHE 페이즈에 대응하는 가중 합의 결과가 CACHE 페이즈에 대응하는 가중 합의 결과보다 크면, 현재 시간 구간의 페이즈를 CPU+CACHE 페이즈로 예측할 수 있다.
페이즈 결정부(184)는 이전 시간 구간 동안 획득된 이벤트 값들을 가중 합할 때, 각 이벤트 값들에 적용될 가중치를, 현재 시간 구간과 이전 시간 구간 사이의 시간 차이에 따라 결정하여 적용할 수 있다. 예를 들어, 페이즈 결정부(184)는 현재 시간 구간과의 시간 차이가 큰 이전 시간 구간의 이벤트 값들에 대해서는 작은 가중치를 적용하고, 현재 시간 구간과의 시간 차이가 작은 이전 시간 구간의 이벤트 값들에 대해서는 큰 가중치를 적용할 수 있다.
일 예로, 현재 시간 구간과 이전 시간 구간의 시간 차이에 따른 가중치는 아래의 표 1로 표현될 수 있다.
Figure pat00044
현재 시간 구간의 페이즈 예측이 완료되면, 카운터(182)는 현재 시간 구간 동안 수집되어야 하는 이벤트 세트를 설정(S315)하고, 설정된 이벤트 세트에 해당하는 이벤트 값들을 수집(S315)한다.
전술한 바와 같이, 예측된 페이즈와 무관하게 기준 이벤트들의 이벤트 값들은 실제의 페이즈 결정을 위해 항상 수집되고, 기준 이벤트 이외의 이벤트들의 종류는 예측 페이즈가 무엇인지에 따라 결정될 수 있다. 일 실시예에서, CPU의 페이즈 별로 어떤 종류의 이벤트를 독립 변수로 이용하였을 때 CPU의 전력 소모량이 가장 정확하게 측정되는지를 확인할 수 있고, CPU의 페이즈가 예측되면, 카운터(182)는 예측된 페이즈에서 소모 전력을 가장 정확하게 측정할 수 있는 이벤트들을 수집 대상의 이벤트 세트로 설정할 수 있다.
다음으로는 CPU의 소모 전력 산출 과정(S325)에 대해 설명한다.
전술한 바와 같이, 이전 시간 구간들에서의 페이즈에 기초하여 현재 시간 구간의 페이즈가 예측되고, 기준 이벤트들의 이벤트 값들에 기초하여 현재 시간 구간의 실제의 페이즈가 결정된다.
예측 페이즈와 실제 페이즈는 동일할 수도, 상이할 수도 있는데, 산출부(186)는 두 가지 경우를 고려하여 소모 전력의 산출을 위한 전력 모델을 구성할 수 있다.
예측 페이즈와 실제 페이즈가 동일한 경우의 기본 전력 모델은 아래의 수학식 9와 같다.
Figure pat00045
수학식 9에서,
Figure pat00046
는 소모 전력,
Figure pat00047
는 클럭 카운터(clock counter)를 통해 획득된 값,
Figure pat00048
은 상기 현재 시간 구간 동안 획득된 이벤트 값,
Figure pat00049
Figure pat00050
은 회귀 계수(regression coefficient)이다. 수학식 9에서 6은 전력 모델을 구성하는데 이용되는 이벤트들의 개수가 6개임을 나타내는데, 전력 모델을 구성하는데 이용되는 이벤트들의 개수가 6개에 한정되지 않음은 자명할 것이다.
예측 페이즈와 실제 페이즈가 동일하므로, 이벤트 수집 과정(S315)을 통해 획득된 이벤트 값들이 독립 변수로서 전력 모델을 구성하는데 이용된다.
예측 페이즈와 실제 페이즈가 상이한 경우의 기본 전력 모델은 아래의 수학식 10과 같다.
Figure pat00051
수학식 10에서,
Figure pat00052
는 소모 전력,
Figure pat00053
는 클럭 카운터(clock counter)를 통해 획득된 값,
Figure pat00054
은 상기 기준 이벤트들의 이벤트 값,
Figure pat00055
Figure pat00056
은 회귀 계수이다. 수학식 10에서 3은 전력 모델을 구성하는데 이용되는 기준 이벤트들의 개수가 3개임을 나타내는데, 전력 모델을 구성하는데 이용되는 이벤트들의 개수가 3개에 한정되지 않음은 자명할 것이다.
예측 페이즈와 실제 페이즈가 상이한 경우에는 이벤트 수집 과정(S315)을 통해 수집된 이벤트들의 이벤트 값들 모두를 이용할 수 없고, 대신 수집된 이벤트들 중 기준 이벤트들의 이벤트 값들이 독립 변수로서 전력 모델을 구성하는데 이용된다. 전술한 바와 같이, 기준 이벤트들은 예측 페이즈와 무관하게 항상 수집되므로, 페이즈 예측이 정확하지 않은 경우에는 수학식 10을 통해 CPU의 소모 전력이 산출될 수 있다.
다음으로는 GPU의 소모 전력 산출 과정(S360)에 대해 설명한다.
GPU의 소모 전력을 산출하기 위한 기본 전력 모델은 아래의 수학식 11과 같다.
Figure pat00057
수학식 11에서,
Figure pat00058
는 소모 전력,
Figure pat00059
Figure pat00060
은 현재 시간 구간 동안 획득된 이벤트 값,
Figure pat00061
Figure pat00062
은 회귀 계수이고, N은 M+1보다 크다.
GPU에서 수집 가능한 이벤트들의 개수는 제한되지 않으므로, 현재 시간 구간 동안에 수집된 이벤트들 중 GPU의 전력 모델을 구성하는데 이용될 이벤트들의 종류를 선택하여야 한다.
일 실시예에서, GPU의 전력 모델을 구성하는데 이용될 이벤트들의 종류는 유전 알고리즘에 따라 결정될 수 있다.
유전 알고리즘이란, 존 홀랜드(John Holland)의 저서 "Adaptation on Natural and Artificial Systems"에서 처음 소개된 최적화 기법으로서, 실제 생물 진화를 모방해서 문제를 해결하는 진화 연산의 대표적인 방법이다.
유전 알고리즘의 적용을 위해, GPU에 대해 수집 가능한 이벤트들의 개수와 동일한 크기의 정수 수열이 정의될 수 있다. 도 6에 도시된 바와 같이, 185개의 정수 수열이 전력 모델의 구성에 이용될 이벤트들을 선택하는데 이용될 수 있다.
정수 수열의 각 정수는 3가지 경우의 수를 가질 수 있는데, 0일 경우 해당 이벤트는 전력 모델을 구성하는데 이용되지 않음을 나타내고. 1일 경우, 해당 이벤트는 수학식 11의
Figure pat00063
으로 할당될 이벤트임을 나타내고, 2일 경우, 해당 이벤트는 수학식 11의
Figure pat00064
으로 할당될 이벤트임을 나타낸다.
이렇게 구성된 유전자를 이용한 유전 알고리즘을 통해 GPU의 각각의 페이즈마다 전력 모델을 구성하기 위한 최적의 경우의 수를 탐색할 수 있다. 표 2는 유전 알고리즘 진행을 위한 매개 변수와 본 실시예를 위해 각 매개 변수에 사용된 값을 예시한다.
Figure pat00065
본 개시의 기술적 사상에 따르면, CPU 및 GPU의 특성에 맞게 복수의 페이즈들이 정의되고, 이벤트들로부터 확인되는 CPU 및 GPU의 페이즈에 따라 최적의 전력 모델이 구성되므로, 여러 조건의 워크로드에서도 CPU 및 GPU의 소모 전력이 정확하게 측정될 수 있다.
도 7은 본 개시의 기술적 사상에 의한 일 실시예에 따른 전자 장치(100)의 프로세싱 유닛의 소모 전력을 산출하는 방법을 설명하기 위한 흐름도이다.
S710 단계에서, 전자 장치(100)는 현재 시간 구간 동안 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득한다.
프로세싱 유닛이 CPU인 경우, 전자 장치(100)는 현재 시간 구간 동안의 CPU의 페이즈를 이전 시간 구간 동안의 CPU의 페이즈에 기초하여 예측하고, 예측된 페이즈에 대응하는 이벤트들의 이벤트 값들을 획득할 수 있다.
S720 단계에서, 전자 장치(100)는 프로세싱 유닛에 대해 미리 구분된 복수의 페이즈 중 현재 시간 구간 동안 획득된 이벤트 값들에 기초하여 현재 시간 구간의 페이즈를 선택한다. 전자 장치(100)는 현재 시간 구간 동안 획득된 이벤트들 중 기준 이벤트들의 이벤트 값들에 기초하여 CPU의 페이즈를 선택하고, 현재 시간 구간 동안 획득된 이벤트 값으로부터 확인되는 GPU의 서브 유닛들의 가용 값에 따라 GPU의 페이즈를 선택할 수 있다.
S730 단계에서, 전자 장치(100)는 프로세싱 유닛의 현재 시간 구간의 페이즈에 대응하는 전력 모델을 구성한다.
전자 장치(100)는 CPU의 예측 페이즈와 실제 페이즈가 동일하면, 현재 시간 구간 동안 획득된 이벤트들을 이용하여 전력 모델을 구성하고, CPU의 예측 페이즈와 실제 페이즈가 상이하면, 현재 시간 구간 동안 획득된 이벤트들 중 기준 이벤트들의 이벤트 값들 이용하여 전력 모델을 구성할 수 있다.
전자 장치(100)는 GPU로부터 획득 가능한 이벤트들 중 유전 알고리즘에 따라 결정된 이벤트들의 이벤트 값들을 이용하여 전력 모델을 구성할 수 있다.
S740 단계에서, 전자 장치(100)는 전력 모델에 따라 현재 시간 구간에서의 프로세싱 유닛의 소모 전력을 산출한다.
전자 장치(100)는 소모 전력에 대한 정보를 출력부(120)를 통해 출력하거나, 통신부(110)를 통해 다른 장치로 전송할 수 있다.
도 8은 본 개시의 기술적 사상에 의한 다양한 실시예에 따른 전력 모델에 기초한 프로세싱 유닛의 소모 전력 산출 방법의 효과를 비교한 표이다.
도 8은 CPU의 전력 모델 및 GPU의 전력 모델을 디스플레이의 전력모델(IEEE Access, 2018)과 병합하여 스마트폰의 전체 전력을 추정할 수 있는 모델을 만든 후, 9개의 게이밍 벤치마크 워크로드에 대해 실제 측정 값과 전력 모델의 예측 값을 비교한 MAPE를 나타낸다.
그 결과, 본 개시에 따른 CPU의 전력 모델과 GPU의 전력 모델을 사용하였을 경우 6.36%의 오차를 보여 기존 모델에 비해 정확도가 약 56% 향상된 것을 알 수 있다. 또한 본 개시에 따른 CPU의 전력 모델 또는 본 개시에 따른 GPU의 전력 모델만을 사용하였을 경우에도 9.99%, 10.28%의 오차를 보여 기존 모델에 비해 향상된 결과를 보여줬다.
이제까지 본 개시의 기술적 사상에 대하여 바람직한 실시예들을 중심으로 살펴보았다. 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자는 본 개시가 본 개시의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 게시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 개시의 기술적 사상의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 개시의 기술적 사상에 포함된 것으로 해석되어야 할 것이다.
나아가, 설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다.
또한, 전술한 본 개시의 기술적 사상은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등을 포함한다.
100: 전자 장치 120: 출력부
130: 사용자 입력부 140: 전원 공급부
150: 메모리 160: 인터페이스부
170: 제어부 180: 분석부

Claims (15)

  1. 전자 장치에 포함되는 프로세싱 유닛의 소모 전력을 산출하는 방법으로서,
    현재 시간 구간 동안 상기 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득하는 단계;
    상기 프로세싱 유닛에 대해 미리 구분된 복수의 페이즈(phase)들 중 상기 이벤트 값들에 기초하여 상기 현재 시간 구간의 페이즈를 선택하는 단계;
    상기 선택된 페이즈에 기초하여 전력 모델을 구성하는 단계; 및
    상기 구성된 전력 모델에 따라 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 소모 전력을 산출하는 단계;
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 프로세싱 유닛은, 중앙 프로세싱 유닛을 포함하고,
    상기 방법은,
    상기 획득하는 단계 전에, 이전 시간 구간들에서의 상기 프로세싱 유닛의 페이즈에 기초하여 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 페이즈를 예측하는 단계;를 더 포함하고,
    상기 이벤트 값들을 획득하는 단계는,
    상기 프로세싱 유닛의 동작 중에 발생 가능한 이벤트들 중 상기 예측된 페이즈에 대해 미리 설정된 이벤트들의 이벤트 값들을 획득하는 단계;를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 전력 모델을 구성하는 단계는,
    상기 예측된 페이즈와 상기 선택된 페이즈가 서로 동일하면, 상기 현재 시간 구간 동안 획득된 이벤트 값들을 입력 값으로 이용하는 제1 전력 모델을 구성하는 단계;를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 제1 전력 모델은 하기의 수학식 1에 해당하며,
    [수학식 1]
    Figure pat00066

    상기 수학식 1에서,
    Figure pat00067
    는 소모 전력,
    Figure pat00068
    는 클럭 카운터(clock counter)를 통해 획득된 값,
    Figure pat00069
    은 상기 현재 시간 구간 동안 획득된 이벤트 값,
    Figure pat00070
    Figure pat00071
    은 회귀 계수(regression coefficient)인, 방법.
  5. 제3항에 있어서,
    상기 전력 모델을 구성하는 단계는,
    상기 예측된 페이즈와 상기 선택된 페이즈가 서로 상이하면, 상기 현재 시간 구간 동안 획득된 이벤트 값들 중 미리 결정된 기준 이벤트들의 이벤트 값들을 입력 값으로 이용하는 제2 전력 모델을 구성하는 단계;를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제2 전력 모델은 하기의 수학식 2에 해당하며,
    [수학식 2]
    Figure pat00072

    상기 수학식 2에서,
    Figure pat00073
    는 소모 전력,
    Figure pat00074
    는 클럭 카운터(clock counter)를 통해 획득된 값,
    Figure pat00075
    은 상기 기준 이벤트들의 이벤트 값,
    Figure pat00076
    Figure pat00077
    은 회귀 계수인, 방법.
  7. 제2항에 있어서,
    상기 페이즈를 예측하는 단계는,
    이전 시간 구간들 동안 획득된 기준 이벤트들의 이벤트 값들을, 상기 이전 시간 구간들에서의 상기 프로세싱 유닛의 페이즈에 기초하여 분류하는 단계;
    상기 페이즈에 따라 분류된 이벤트 값들을 가중합하는 단계; 및
    상기 가중합의 결과 값 중 최대 값에 대응하는 페이즈를 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 페이즈로 예측하는 단계;를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 이전 시간 구간들 동안 획득된 기준 이벤트들의 이벤트 값들에 적용될 가중치는, 상기 현재 시간 구간과 이전 시간 구간 사이의 차이에 따라 결정되는, 방법.
  9. 제1항에 있어서,
    상기 프로세싱 유닛은, 중앙 프로세싱 유닛을 포함하고,
    상기 페이즈를 선택하는 단계는,
    상기 이벤트 값들 중 기준 이벤트들의 이벤트 값들로부터 메모리 관련 명령어의 비율, 및 캐시 미스(cache miss)의 비율을 산출하는 단계; 및
    메모리 관련 명령어의 비율, 및 캐시 미스의 비율에 따라 구분된 상기 복수의 페이즈 중 상기 산출된 메모리 관련 명령어의 비율 및 캐시 미스의 비율에 대응하는 페이즈를 상기 현재 시간 구간의 페이즈로 선택하는 단계;를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 프로세싱 유닛은, 그래픽 프로세싱 유닛(graphic processing unit)을 포함하고,
    상기 페이즈를 선택하는 단계는,
    상기 획득된 이벤트 값들로부터 상기 프로세싱 유닛을 구성하는 서브 유닛들의 가동률을 산출하는 단계; 및
    서브 유닛에 따라 구분된 상기 복수의 페이즈 중 가장 큰 가동률을 갖는 서브 유닛에 대응하는 페이즈를 상기 현재 시간 구간의 페이즈로 선택하는 단계;를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 전력 모델을 구성하는 단계는,
    상기 획득된 이벤트 값들 중 유전 알고리즘에 따라 선택된 일부의 이벤트 값들을 입력 값으로 이용하는 상기 전력 모델에 따라 상기 소모 전력을 산출하는 단계;를 포함하는, 방법.
  12. 제11항에 있어서,
    상기 전력 모델은 하기의 수학식 3에 해당하며,
    [수학식 3]
    Figure pat00078

    상기 수학식 3에서,
    Figure pat00079
    는 소모 전력,
    Figure pat00080
    Figure pat00081
    은 상기 현재 시간 구간 동안 획득된 이벤트 값,
    Figure pat00082
    Figure pat00083
    은 회귀 계수이고, N은 M+1보다 큰, 방법.
  13. 제12항에 있어서,
    상기 전력 모델을 구성하는 단계는,
    상기 유전 알고리즘에 따라, 상기 획득된 이벤트 값들을 상기
    Figure pat00084
    으로 할당될 이벤트 값,
    Figure pat00085
    으로 할당될 이벤트 값 또는 입력 값으로 이용되지 않는 이벤트 값으로 분류하는 단계;를 포함하는, 방법.
  14. 프로세싱 유닛; 및
    상기 프로세싱 유닛의 소모 전력을 산출하는 분석부를 포함하되,
    상기 분석부는,
    현재 시간 구간 동안 상기 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득하는 카운터;
    상기 프로세싱 유닛에 대해 미리 구분된 복수의 페이즈들 중 상기 이벤트 값들에 기초하여 상기 현재 시간 구간의 페이즈를 선택하는 페이즈 결정부; 및
    상기 선택된 페이즈에 기초하여 구성되는 전력 모델에 따라 상기 현재 시간 구간에서의 상기 프로세싱 유닛의 소모 전력을 산출하는 산출부;를 포함하는, 전자 장치.
  15. 제1 프로세싱 유닛;
    제2 프로세싱 유닛; 및
    상기 제1 프로세싱 유닛과 상기 제2 프로세싱 유닛의 소모 전력을 산출하는 분석부;를 포함하되,
    상기 분석부는,
    현재 시간 구간 동안 상기 제1 프로세싱 유닛과 상기 제2 프로세싱 유닛의 동작 중에 발생하는 이벤트들의 이벤트 값들을 획득하는 카운터;
    상기 제1 프로세싱 유닛과 상기 제2 프로세싱 유닛 각각에 대해 미리 구분된 복수의 페이즈 중 상기 제1 프로세싱 유닛의 페이즈와 상기 제2 프로세싱 유닛의 페이즈를 상기 이벤트 값들에 기초하여 독립적으로 선택하는 페이즈 결정부; 및
    상기 제1 프로세싱 유닛의 페이즈에 따라 구성되는 전력 모델과 상기 제2 프로세싱 유닛의 페이즈에 따라 구성되는 전력 모델을 이용하여 상기 제1 프로세싱 유닛 및 상기 제2 프로세싱 유닛의 소모 전력을 산출하는 산출부;를 포함하는, 전자 장치.
KR1020200022567A 2020-02-24 2020-02-24 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법 KR102379026B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200022567A KR102379026B1 (ko) 2020-02-24 2020-02-24 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200022567A KR102379026B1 (ko) 2020-02-24 2020-02-24 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법

Publications (2)

Publication Number Publication Date
KR20210107485A true KR20210107485A (ko) 2021-09-01
KR102379026B1 KR102379026B1 (ko) 2022-03-25

Family

ID=77780052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200022567A KR102379026B1 (ko) 2020-02-24 2020-02-24 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법

Country Status (1)

Country Link
KR (1) KR102379026B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140005808A (ko) * 2012-07-06 2014-01-15 삼성전자주식회사 프로세싱 유닛에 대한 전력 관리 시스템 및 방법
KR101571932B1 (ko) * 2013-11-26 2015-11-26 광운대학교 산학협력단 반도체 집적 회로의 소비 전력 계산 방법 및 소비 전력 계산 회로
KR20160111581A (ko) * 2015-03-16 2016-09-27 한국전자통신연구원 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
KR20190118353A (ko) * 2018-04-10 2019-10-18 아주대학교산학협력단 모바일 장치의 전력 측정 및 분석 시스템 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140005808A (ko) * 2012-07-06 2014-01-15 삼성전자주식회사 프로세싱 유닛에 대한 전력 관리 시스템 및 방법
KR101571932B1 (ko) * 2013-11-26 2015-11-26 광운대학교 산학협력단 반도체 집적 회로의 소비 전력 계산 방법 및 소비 전력 계산 회로
KR20160111581A (ko) * 2015-03-16 2016-09-27 한국전자통신연구원 이기종 멀티-코어 시스템의 gpu 전력 측정 방법
KR20190118353A (ko) * 2018-04-10 2019-10-18 아주대학교산학협력단 모바일 장치의 전력 측정 및 분석 시스템 및 그 방법

Also Published As

Publication number Publication date
KR102379026B1 (ko) 2022-03-25

Similar Documents

Publication Publication Date Title
CN109960395B (zh) 资源调度方法和计算机设备
JP7094352B2 (ja) タスク並列処理の実現方法、装置、機器及び媒体
KR101991682B1 (ko) Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
CN111045814B (zh) 资源调度方法和终端设备
JP5218390B2 (ja) 自律制御サーバ、仮想サーバの制御方法及びプログラム
CN107408062A (zh) 用于卸载和加载处理器/协处理器安排的数据的技术
CN104516475A (zh) 用于管理多核片上系统上的全局芯片功率的方法和装置
JP6374466B2 (ja) センサインタフェース装置、測定情報通信システム、測定情報通信方法、及び測定情報通信プログラム
CN109508468A (zh) 装置寿命估计方法、装置设计方法和计算机可读存储介质
CN105843731B (zh) 计算机系统及通过计算机系统执行的性能监控方法
CN116882708B (zh) 基于数字孪生的钢铁工艺流程管控方法、装置及相关设备
US20160117199A1 (en) Computing system with thermal mechanism and method of operation thereof
CN115269108A (zh) 一种数据处理方法、装置及设备
WO2019062462A1 (zh) 应用控制方法、装置、存储介质以及电子设备
WO2012023625A1 (ja) 拡張性評価装置、拡張性評価方法および拡張性評価プログラム
Pasricha et al. Data analytics enables energy-efficiency and robustness: from mobile to manycores, datacenters, and networks (special session paper)
KR102379026B1 (ko) 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법
CN107729144B (zh) 应用控制方法、装置、存储介质及电子设备
Chen et al. Quality optimization of adaptive applications via deep reinforcement learning in energy harvesting edge devices
JP6893323B2 (ja) 発電設備情報推定システムおよび発電設備情報推定方法
CN108475208A (zh) 用于自适应资源控制的多核系统的训练器
US20140122403A1 (en) Loading prediction method and electronic device using the same
KR102118799B1 (ko) 모바일 단말 장치 내의 프로세서의 전력을 관리하는 장치 및 방법
KR101867222B1 (ko) 복합 센서의 기기상태 영향도 기반 비접촉 가전기기 식별방법 및 장치
US20230088429A1 (en) Processing device, processing method, and program

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