KR101666549B1 - 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법 - Google Patents

컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법 Download PDF

Info

Publication number
KR101666549B1
KR101666549B1 KR1020150130177A KR20150130177A KR101666549B1 KR 101666549 B1 KR101666549 B1 KR 101666549B1 KR 1020150130177 A KR1020150130177 A KR 1020150130177A KR 20150130177 A KR20150130177 A KR 20150130177A KR 101666549 B1 KR101666549 B1 KR 101666549B1
Authority
KR
South Korea
Prior art keywords
cpu
frequency
memory
upper limit
access
Prior art date
Application number
KR1020150130177A
Other languages
English (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 KR1020150130177A priority Critical patent/KR101666549B1/ko
Application granted granted Critical
Publication of KR101666549B1 publication Critical patent/KR101666549B1/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
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3243Power saving in microcontroller unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법이 개시된다. 상기 방법은 소정의 어플리케이션의 실행시에 CPU 의 동작을 모니터링하되, CPU 의 메모리에 대한 접근 빈도를 측정하는 것을 포함하여 CPU 의 동작을 모니터링하고, 측정된 CPU 의 메모리에 대한 접근 빈도를 기반으로, CPU 주파수 조정의 상한값을 결정한다. 이후, 결정된 CPU 주파수 조정의 상한값을 기반으로, CPU 의 주파수를 제어함으로써, CPU 의 주파수를 동적으로 제어한다. 따라서, 에너지 소모와 성능 향상의 균형을 맞출 수 있도록 동적 전압/주파수 조정을 수행할 수 있다.

Description

컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법{METHOD FOR DYNAMIC FREQUENCY SCAILING OF CPU IN THE COMPUTING DEVICE}
본 발명은 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법에 관한 것으로서, 보다 구체적으로는 동적 전압/주파수 조정 (Dynamic Voltage/Frequency Scaling, DVFS) 기법에 있어서 주파수 조정의 상한값을 설정하는 방법에 관한 것이다.
동적 전압/주파수 스케일링 (Dynamic Voltage/ Frequency Scaling, DVFS) (비특허문헌 1 참조) 은 전력 절감 기술 중의 하나로서, CMOS 기반 부품의 인가전압을 동적으로 높이거나 낮춤으로서 소비 전력을 조정할 수 있게 한다. DVFS 기술을 이용하여 컴퓨터 시스템의 소비 전력을 줄이기 위해서 전압 및 동작 주파수를 낮추거나, 또는 더 많은 전력 소모를 감수하고 컴퓨터의 성능을 높이기 위해서 전압 및 주파수를 높일 수 있다. 현대의 CPU들은 대부분 전력 소모 절감을 위해 DVFS를 지원한다. 특히 배터리와 같은 제한된 전력 자원을 가지는 스마트폰과 같은 임베디드 시스템에서는 필수적으로 지원되고 있다.
많은 운영 체제들은 CPU의 DVFS 기술을 이용하여 전력을 절감하는 인터페이스를 제공하며, 이러한 인터페이스를 이용하여 에너지 절감 정책을 구현한다. 리눅스의 경우, DVFS 거버너를 통해 에너지 절감 정책이 수행된다. 대개 CPU의 부하를 1 틱마다 체크하여, 부하가 낮을 경우 주파수를 낮추고 부하가 높을 경우 주파수를 높여주는 방식으로 동작한다. 주파수 조정의 폭과 시기를 결정하기 위한 여러 가지 정책이 있을 수 있으며, 리눅스에서는 기본적으로 OnDemand, Conservative, Userspace, Performance, Powersave의 다섯 가지 정책을 제공한다 (비특허문헌 2 참조). 최근의 안드로이드 등의 리눅스 기반 모바일 플랫폼에서는 보다 많은 동적 주파수 할당 정책을 제공한다.
M. Weiser, B. Welch, A.J. Demer, and S. Shenker, "Scheduling for Reduced CPU Energy," Proceedings of the 1st USENIX Conf. on Operating Systems Design and Implementation, pp.13-23, 1994. D. Brodowski, "Linux CPUFreq Governors," [Online]. Available: https://www.kernel.org/doc /Documentation/cpu-freq/governors.txt (retrieved 2014, Mar. 25) D. Marculescu, "On the Usage of Microarchitecturedriven Dynamic Voltage Scaling," Proceedings of the Workshop on Complexity-Effective Design, 2000. Q. Wu, M. Martonosi, D.W. Clark, V.J. Reddis, D. Connors, Y. Wu, J. Lee, and D. Brooks, "A Dynamic Compilation Framework for Controlling Microprocessor Energy and Performance," MICRO 38: Proceedings of the 38th Annual IEEE/ACM International Symposium on Microarchitecture, pp.271-282, 2005. C. Poellabauer, L. Singleton, and K. Schwan, "Feedback Based Dynamic Voltage and Frequency Scaling for Memory-bound Real-time Applications," Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium, pp.234-243, 2005. K. Choi, R. Soma, and M. Pedram, "Dynamic Voltage and Frequency Scaling Based on Workload Decomposition," Proceedings of the 2004 International Symposium on Low Power Electronics and Design, pp.174-179, 2004. K. Rajamani, H. Hanson, J. Rubio, S.Ghiasi, and F. Rawson, "Application-Aware Power Management," Proceedings of the IEEE Symposium on Workload Characterization, pp.39-48, 2006. V. Venkatachalam and M. Franz, "A New Way of Estimating Compute-boundedness and Its Application to Dynamic Voltage Scaling," International Journal of Embedded Systems, vol.3, nos.1/2, pp.17-30, 2007. M.A. Laurenzano, M. Meswani, L. Carrington, A. Snavely, M.M. Tiki, S. Poole, "Reducing Energy Usage with Memory and Computation-aware Dynamic Frequency Scaling," Proceedings of the 17th International Conference of Parallel Processing, pp.79-90, 2011. R. Miftakhutdinov, E. Ebrahimi, and Y.N. Patt, "Predicting Performance Impact of DVFS for Realistic Memory Systems," Proceedings of the 45th Annual IEEE/ACM International Symposium on Microarchitecture, pp.155-165, 2012. ARM Limited (2012, Dec. 19), "PrimeCell Level 2 Cache Controller (PL310) Technical Reference Manual," [Online]. Available: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0246c/DDI0246C_l2cc_pl310_r2p0_trm.pdf (retrieved 2014, Mar. 25) http://icl.cs.utk.edu/projects/llcbench/ http://web2.clarkson.edu/class/cs644/isolation/index.html M. R. Hollander and P. V. Bolotoff, "RAMspeed, a cache and memory benchmarking tool," [Online]. Available: http://alasir.com/software/ramspeed/ (retrieved 2014, Mar. 25) http://www.webkit.org/perf/sunspider/sunspider.html Samsung Electronics, "DDR3 SDRAM Specification," Rev.1.4, Nov. 2011.
DVFS 를 활용하는 정책의 유용성은 응용의 소모 전력과 성능의 상관관계에 달려있다. 만일 CPU의 전압/주파수를 높여 소모 전력을 증가시켰음에도 기대하는 성능의 향상을 얻지 못하거나, 소모 전력 감소를 위해 전압/주파수를 낮추었는데 성능 하락의 폭이 매우 크다면 그 정책은 해당 응용에 대하여 효과적으로 동작하지 못한다고 할 수 있다. CPU 중심 응용의 경우 주파수의 상승에 비례하여 성능의 향상이 선형적으로 이루어질 것이 기대되지만, 그렇지 않은 응용의 경우 주파수 상승만큼의 성능 향상이 성립되지 않는 경우도 있으므로 기존의 CPU 부하만을 고려하는 DVFS 정책들은 효과적으로 동작하지 않는 경우가 있다.
따라서, 전술한 문제점을 해결하기 위한 본 발명의 목적은, 운영체제에서 어플리케이션의 실행시에 CPU 의 메모리 접근을 모니터하면서 이 값에 따라 성능 향상 정도를 결정함으로써, 에너지 소모와 성능 향상의 균형을 맞출 수 있는 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법을 제공하는 것이다.
다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
전술한 문제점을 해결하기 위한 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법은, 소정의 어플리케이션의 실행시에 상기 CPU 의 동작을 모니터링하는 단계로서, 상기 모니터링은 상기 CPU 의 메모리에 대한 접근 빈도를 측정하는 것을 포함하는, 상기 CPU 의 동작을 모니터링하는 단계; 상기 측정된 CPU 의 메모리에 대한 접근 빈도를 기반으로, CPU 주파수 조정의 상한값을 결정하는 단계; 및 상기 결정된 CPU 주파수 조정의 상한값을 기반으로, 상기 CPU 의 주파수를 제어하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 CPU 주파수 조정의 상한값은 상기 CPU 주파수의 증가가 상기 컴퓨팅 디바이스의 성능 향상에 더 이상 기여하지 못하게 되는 최소 주파수를 나타낼 수 있다.
일 실시예에 따르면, 상기 CPU 의 메모리에 대한 접근 빈도는, 상기 CPU 가 실행하는 명령어 당 메모리 접근 빈도를 기반으로 측정될 수 있다.
일 실시예에 따르면, 상기 CPU 의 메모리에 대한 접근 빈도는, 상기 어플리케이션의 실행 동안 최종 수준 캐시 미스 (Last Level Cache misses)의 수를 기반으로 측정될 수 있다.
일 실시예에 따르면, 상기 최종 수준 캐시는, 데이터 캐시일 수 있다.
일 실시예에 따르면, 상기 CPU 주파수 조정의 상한값은 상기 CPU 의 메모리에 대한 접근 빈도가 상기 메모리의 동작 주파수보다 높게 발생하지 않도록 할 수 있다.
일 실시예에 따르면, 상기 CPU 주파수 조정의 상한값을 결정하는 단계는, 누설 전류에 의한 소비 전력이 상기 CPU 의 전체 소비 전력에서 차지하는 비율을 0 내지 1 까지 소정 간격으로 변화시키면서, 각각의 비율에 따른 최적의 CPU 주파수들을 결정하는 단계; 및 상기 결정된 각각의 비율에 따른 최적의 CPU 주파수들 중에서, 최대값인 주파수를 상기 CPU 주파수 조정의 상한값으로 결정하는 단계를 포함할 수 있다.
일 실시예에 따르면, 상기 최적의 CPU 주파수는 상기 어플리케이션의 수행시간과 상기 어플리케이션의 수행에 따른 소비 전력을 곱한 값을 최소화하는 주파수일 수 있다.
일 실시예에 따르면, 상기 최적의 CPU 주파수는 하기의 수학식이 최소의 값을 가지도록 하는 f 의 값일 수 있다.
((1-a)f+a/f)(1+t×f×MPI)2 CPI02
단, 여기서 a 는 누설 전류에 의한 소비 전력이 상기 CPU 의 전체 소비 전력에서 차지하는 비율, f 는 CPU 의 주파수, t 는 캐시 미스를 처리하기 위한 메모리 전송 시간, MPI 는 명령어당 캐시 미스, CPI0 은 메모리 접근이 없는 경우의 CPI (Cycles Per Instruction) 을 나타낸다.
일 실시예에 따르면, 상기 CPU 주파수 조정의 상한값을 결정하는 단계는 하기의 수학식의 f 를 상기 CPU 주파수 조정의 상한값으로 결정할 수도 있다.
f = 1/(t×MPI)
단, t 는 캐시 미스를 처리하기 위한 메모리 전송 시간, MPI 는 명령어당 캐시 미스를 나타낸다.
본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법에 따르면, 메모리 접근 빈도에 기반하여 CPU 주파수 조정의 상한을 결정할 수 있으므로, 그에 따라 에너지 소모와 성능 향상의 균형을 맞출 수 있도록 동적 전압/주파수 조정을 수행할 수 있다.
따라서, CPU 의 전압/주파수를 높여 소모 전력을 증가시켰음에도 기대하는 성능의 향상을 얻지 못하는 경우를 방지할 수 있으며, DVFS 정책을 더욱 효율적으로 만들 수 있다. 아울러, 본 발명의 일 실시예에 따른 주파수를 동적으로 제어하는 방법은, 주파수의 상한만을 결정하고 있으므로, 다른 DVFS 정책과도 결합하여 사용할 수 있다.
도 1은 CPU 주파수 변화에 따른 성능 향상을 나타낸다.
도 2는 CPU 주파수 상승에 따른 CPU 시간 감소를 나타낸다.
도 3은 CPU 시간과 CPU 주파수 역수의 선형적 관계를 나타낸다.
도 4는 L1 캐시 미스율을 나타낸다.
도 5는 응용의 주파수별 평균 CPI를 나타낸다.
도 6은 rampsmp와 FireFox의 추정된 CPI와 실제 CPI 비교를 나타낸다.
도 7은 ramsmp의 (CPI(f))2 / f 의 값을 나타낸다.
도 8은 주파수 상한을 0.8GHz로 설정한 ramsmp 의 수행 시간 및 에너지 소모를 나타낸다.
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법의 흐름도이다.
도 10은 도 9 의 CPU 주파수 조정의 상한값을 결정하는 단계의 상세 흐름도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
개요
본 발명의 발명자들은 CPU 주파수 상승에 비례하여 성능이 효과적으로 증가하지 않는 응용들을 실험 결과를 통해 확인하고, CPU 주파수와 응용 성능의 상관 관계를 분석하기 위해 여러 가지 벤치마크 프로그램들을 이용하여 CPU 주파수와 성능, 캐시 접근 및 미스, 주메모리 접근 등을 측정하였다. 실험 결과를 분석하여 주메모리 접근 빈도가 CPU 주파수 상승과 성능 관계에 미치는 영향이 가장 큰 요인으로 파악하였으며, 이를 이용하여 주메모리 접근 빈도에 따른 CPU 주파수 상한을 제시한다.
본 명세서는 다음과 같이 구성된다. 먼저, 관련된 선행 연구를 설명하고, 실험 환경과 성능 모니터링 방법에 대하여 설명한다. 이후, 프로그램들의 테스트 결과에 대해 기술하고, 메모리 접근이 DVFS 성능에 미치는 영향을 분석한다. 이러한 분석 결과를 적용함으로써, 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법에 대해 구체적으로 설명하고, 그 성능 및 에너지 절감 효과를 기술한다.
관련 연구
DVFS 기법은 다양한 플랫폼을 대상으로 많은 연구가 있어 왔다. DVFS 기법 자체는 충분히 보급된 기술이며, 현대의 프로세서들은 대부분 DVFS를 수행할 수 있는 기능을 제공한다. CPU 주파수를 조절하기 위해서 초기부터 지금까지 CPU 이용률을 이용하는 것이 기본적이다. 그러나 CPU 이용률에 더하여, 본 발명과 같이 메모리에 의한 영향을 고려하는 연구들도 지속되었다.
비특허문헌 3은 DVFS에 캐시 미스의 영향을 적용한 초기 시도로서, 캐시 미스가 발생할 경우 기다려야 하는 명령어들과 그렇지 않은 명령어를 구분하여 DVFS를 적용하는 방법을 제안하였다. 비특허문헌 4에서는 동적 컴파일러를 이용하여 오프라인에서 계산된 프로세서 스톨 (stall) 시간을 계산, CPU 주파수에 대한 조정을 실시하는 메모리 인지(memory-aware) DVFS를 제안하였다. 비특허문헌 5에서는 프로그램의 수행 시간을 계산 시간과 메모리 접근 시간으로 구분하였다. 벤치마크 프로그램들의 평균 명령어 당 캐시 미스율과 그에 적절한 CPU 주파수를 측정하여 표로 만들고, 실행 시간에 표를 참조하여 휴리스틱을 이용하여 DVFS 에 적용하도록 하고 있다. 비특허문헌 6에서는 on-chip과 off-chip의 프로그램 수행시간을 측정하고, off-chip 수행시간이 명령어 당 CPU 스톨 사이클(cycle)과 선형적으로 비례한다는 것을 보고하였다. 스톨 사이클은 캐시 미스와 관련되므로, 캐시 미스율과 스톨 사이클의 관계를 표로 작성하여 DVFS 적용 시 참조하도록 하였다. 비특허문헌 6은 사용자가 감수할 수 있는 성능 저하를 지정하여 그에 맞는 적정한 주파수를 지정하는 접근 방법을 취하고 있다. 비특허문헌 7에서는 사이클 당 명령어 수와 캐시 미스 수를 모니터하여 CPU 주파수에 따른 사이클 당 명령어 수 변화를 예측하고, 이에 따라 제한된 에너지에서의 성능을 최대화하거나 또는 목표 성능에서의 최저 에너지 소모를 달성하도록 주파수를 변경하는 정책을 제안하였다.
이러한 접근들은 결국 수행 중인 응용의 성능이 CPU 주파수에 따라 영향을 받는지를 예측하는 것과 관련이 있다. 비특허문헌 8에서는 프로그램이 CPU의 두 가지 주파수 지점에서 수행한 사이클과 수행시간을 측정하고, 이 값들을 이용하여 일정 시간에서의 CPU 사이클에 해당하는 수행시간을 추정한다. 추정된 수행시간에 근거하여 성능 저하를 예측, DVFS를 수행하게 된다. 비특허문헌 9에서는 정적 분석을 통해 프로그램의 루프(loop) 단위로 계산 중심인지 메모리 중심인지 예측하여 컴파일 시간에 응용의 특징(signature)을 기록하고, 수행 시 이를 참조하여 CPU 주파수를 조절한다. 더 정교한 DRAM 모델에 대한 성능 저하 예측은 비특허문헌 10에서 찾아볼 수 있다.
본 발명의 연구에서도 메모리 접근 빈도에 따른 주어진 CPU 주파수에서의 성능을 예측하나, 다른 연구와 달리 에너지 소모 대비 성능 향상의 이득을 주안점으로 한다. 따라서 본 발명에서는 최적 주파수를 결정하는 것 보다, 주파수 상승에 따른 이득이 제한되는 주파수 조정의 상한점을 제시하는 것을 목표로 하고 있으며, 상한만을 제시하기 때문에 다른 DVFS 정책과의 결합도 가능하다.
메모리 접근 모니터링 및 실험 환경
현대의 프로세서는 PMU (Performance Monitoring Unit) 라는 성능 측정을 위한 하드웨어 장치를 제공한다. PMU를 통해 CPU의 수행 명령어 수, 캐시 hit/miss 수, 분기 예측 실패 등을 알 수 있다. 수행 명령어의 수, 수행 시간과 L1 캐시에 대한 정보는 PMU 정보를 조사할 수 있는 Linux perf 도구를 사용하였다.
멀티코어 프로세서는 여러 수준의 캐시를 가지는데, Cortex-A7의 경우에는 L1 및 L2 캐시의 정보를 PMU에서 모두 알 수 있다. 그러나 실험에 사용된 Exynos 4412 프로세서는 Cortex-A9 프로세서로, L2 캐시의 정보는 PL310 L2 캐시 컨트롤러를 통해 모니터해야 한다.
Exynos 4412는 L1 및 L2 캐시만을 제공하므로, L2 캐시를 모니터하여 L2 캐시가 miss 된 경우 이를 메모리 접근으로 판단하였다. PL310의 이벤트 카운터를 이용한 L2 캐시 모니터링 소프트웨어는 비특허문헌 11을 참조하여 구현하였다. PL310을 통해 L2 Cache 관련 이벤트를 모니터링 하는 방법은 성능 모니터링 유닛을 프로그래밍하는 방법과 유사하다. PL310의 이벤트 카운터 설정 레지스터에 측정하고자 하는 이벤트의 값을 설정하고, 이벤트 카운터 레지스터의 값을 읽는 것으로 간단하게 측정이 가능하다. 본 발명에서는 명령어 캐시는 응용간의 특성 차이가 적으므로 데이터 캐시를 모니터링 대상으로 할 수 있다.
테스트 환경
타겟 하드웨어는 Hardkernel사의 Odroid-X로, 프로세서는 4개의 코어를 가진 삼성 Exynos4412 quad-core ARM Cortex-A9 1.4GHz이고, 메모리는 1GB DRAM을 사용하며, 저장장치로는 16GB eMMC를 사용하였다. CPU는 0.2GHz부터 1.4GHz까지의 주파수를 0.1GHz씩 증가시킬 수 있어, 총 13 단계의 주파수 조정이 가능하다. 캐시는 32KB/32KB L1 명령어/데이터 캐시와 1MB L2 캐시를 가진다. OS는 Linaro 프로젝트에서 제공하는 Ubuntu for ARM 12.11 (커널버전 3.6.10)을 사용하였다. 사용 전력은 Power meter HPM-300A를 이용하여 측정하였다. 전력계는 250ms 간격으로 전력 데이터를 전송하며, 오차는 ±0.4% 이내이다. 측정 전력은 CPU를 포함한 전체 타겟의 사용 전력이다.
테스트 프로그램
실험에 사용된 프로그램들은 3개의 벤치마크 프로그램과 1개의 상용프로그램으로 구성되었다. cpuBomb(비특허문헌 12 참조)은 CPU를 100% 사용하는 계산 응용이다. mallocbomb(비특허문헌 13 참조)은 메모리에 대한 stress test를 위한 응용으로 IBS(Isolation Benchmark Suite)에 포함되어 있다. 이 두 응용은 단일 쓰레드만을 가진다.
멀티코어를 사용하는 응용으로 ramsmp와 FireFox를 테스트하였다. ramsmp(비특허문헌 14 참조)는 캐시와 메모리 성능을 측정하기 위한 RAMspeed 벤치마크의 SMP 버전으로, 4GB의 메모리에 대하여 4개의 프로세스가 병렬로 연산을 실행하는 테스트를 실시하였다. 상용 프로그램으로는 FireFox를 실험하였으며, 성능 확인을 위하여 SunSpider 벤치마크(비특허문헌 15 참조) 버전 0.9를 이용하였다. SunSpider 벤치마크는 웹브라우저가 JavaScript 코드를 수행하는 속도를 측정하는 것으로, JSON 입력으로부터의 태그 클라우드를 생성, 3차원 ray-tracing, 문자열 암호화, 압축 해제 등의 테스트를 포함하고 있다. 파일 시스템 캐시를 사용할 경우 최초 수행 시와 이후 반복 수행시의 페이지 로드의 경로가 달라져 메모리 사용에 영향을 받는 경우를 방지하기 위해, 실험에서는 브라우저가 파일시스템 캐시를 사용하지 않도록 설정하였다.
FireFox의 경우 1개 이상의 쓰레드가 동적으로 생성되어 동작되며, 수행 시간에 사용되는 코어의 수는 유동적이다. 타겟 시스템의 CPU는 SMP로서 모든 코어에 동일한 클럭이 공급된다. 따라서 서로 다른 개수의 코어를 사용하는 응용 및 FireFox와 같이 동적으로 다른 개수의 코어를 사용하는 응용을 테스트하여 코어 수의 영향도 함께 살펴보고자 하였다.
CPU 주파수와 응용의 특성에 성능
CPU 주파수 변화에 따른 성능 향상
프로그램의 수행 성능은 일반적으로 CPU 수행 주파수에 의존적이다. CPU의 수행 주파수가 높으면 응용은 더 빨리 수행되며, 더 높은 성능을 보일 것으로 기대된다. 그러나 성능 향상의 정도는 응용의 특성에 따라 달라진다. 이를 파악하기 위하여, 4 개의 프로그램을 대상으로 각 프로그램의 CPU 주파수에 따른 성능 향상 정도를 측정하였다. ramsmp에서 메모리 테스트를 위한 배열의 크기는 32MB로, 타겟의 L2 캐시 메모리 크기가 1MB이므로 캐시 미스가 크게 발생할 것으로 기대되었다. 도 1은 측정 결과를 보여준다. 도 1의 X 축은 CPU 주파수의 증가, Y축은 프로그램의 종료까지 수행한 시간(반환시간)을 나타낸다.
도 1의 결과를 살펴보면, 기대한 바와 같이 CPU 주파수가 높을수록 반환시간이 짧아 성능이 높은 것을 알 수 있다. 그러나 주파수 변화에 따른 성능 향상의 정도는 응용에 따라 다르며, 특히 ramsmp의 경우 성능 향상 정도가 매우 낮은 것을 볼 수 있다. cpuBomb의 경우 주파수를 7배 (0.2GHz에서 1.4GHz, 도 2에서는 7에서 1로 변경) 상승시키면 성능이 7배 향상되어 수행 시간이 약 1/7로 줄어드는 반면, ramsmp는 성능의 3배 증가로 수행 시간이 약 1/3으로 줄어드는 데 그치고 있다.
도 1의 결과에서, FireFox의 경우는 웹사이트를 접근하여 페이지를 가지고 오기 위한 입출력 시간 및 대기 시간이 포함된다. 따라서 CPU 주파수를 조정함으로써 얻는 성능 향상을 정확히 비교하기 위해서는 입출력 시간 및 대기 시간을 제외한 CPU 시간을 측정하는 것이 필요하다. 이를 위하여 수행 시간과 더불어 CPU를 사용한 cycle을 측정하여 CPU 시간을 구하였다. 도 2는 이렇게 측정한 CPU 시간으로 비교한 성능 향상 정도를 보여준다.
CPU 주파수와 CPU 시간이 선형적 관계를 가지는 것을 더욱 분명히 살펴보기 위해, 주파수의 역수와 반환 시간의 관계를 도 3에 보인다. 각 그래프에는 선형 회귀 분석을 이용하여 산출된 직선의 방정식이 표시되었다. 직선의 기울기에 따라 각 응용의 CPU 주파수에 대한 성능 향상을 예측할 수 있다. 즉, 기울기가 1에 가깝다면 CPU 주파수 상향에 비례하여 성능 향상을 기대할 수 있고, 기울기가 작다면 주파수 상향에 비하여 높은 성능 향상을 기대하기 어렵다. 따라서 기울기가 작은 경우, CPU 주파수 상향으로 인한 전력 소모에 비해 얻게 되는 성능 향상이 적어 에너지 효율면에서 좋지 않게 된다. 본 명세서에서는 CPU 주파수에 대한 성능 향상 정도를 나타내는 이러한 직선의 기울기를 응용의 주파수 상관계수(frequency correlation)라 부르도록 한다.
주파수 상관계수의 영향 인자 분석
각 응용이 상이한 주파수 상관계수를 가지는 원인을 분석하기 위하여 응용들의 메모리 접근 특성을 분석한다. 이를 통하여 응용들의 주파수 상관계수를 예측하고, CPU 주파수 증가가 응용 또는 시스템의 성능 향상에 크게 기여하지 못하는 최소 주파수를 추정하고자 한다.
이를 위해 먼저 응용 수행 동안의 L1 캐시 미스를 PMU를 이용하여 측정하였다. 각 주파수마다 측정했기 때문에 응용별로 각각 9회의 측정 결과를 얻었으며, 전체 결과를 도 4에 보인다. 이 중 최대/최소값의 측정 결과는 표 1에 보인다. 표 1의 결과로 볼 때, L1 캐시 미스율은 도 2에 나타난 응용의 주파수 상관계수와 밀접한 관계를 가진다.
[표 1] L1 캐시 미스율의 최소값과 최대값
Figure 112015089488614-pat00001
주파수 상관계수에 영향을 미치는 인자를 더 자세히 파악하기 위하여, 메모리 접근과 관련이 있는 L2 캐시 미스 및 수행 시간 동안의 명령어(instruction) 수를 측정하였다. 측정 결과 L2 캐시 미스의 수는 L1 캐시 미스의 수에 정비례하였으며, 거의 유사하거나 (L1의 약 96%, cpuBomb, FireFox, ramsmp) 또는 낮은 (L1의 약 48%, mallocbomb) 결과를 보였고, 이로 인해 L2 캐시의 미스율은 매우 높았다(표 2).
[표 2] L2 캐시 미스율의 최소값과 최대값
Figure 112015089488614-pat00002
명령어 당 메모리 접근을 추정하기 위하여, L2 캐시 미스 수를 수행 명령어 수로 나누어 표 3에 나타낸다. 추정을 위해 L2 캐시 미스를 주메모리 접근으로 간주하여 계산되었으며, 숫자가 작기 때문에 1,000개의 명령어 당 메모리 접근 수로 계산되었다.
[표 3] 1,000 명령어 당 L2 캐시 미스 횟수
Figure 112015089488614-pat00003
메모리 접근이 많은 응용은 CPI(Cycles Per Instruction)가 높을 뿐 아니라 주파수가 높아짐에 따라 증가할 것이다. 이를 확인하기 위하여 각 응용의 CPI를 측정하였다. 도 5는 측정 결과를 보여준다. 예상된 바와 같이 FireFox의 CPI가 높게 나타났으며, ramsmp의 CPI의 상승 정도가 크다. ramsmp는 메모리 접근 빈도가 높기 때문에 주메모리로 사용되는 LPDDR3 RAM의 동작 주파수인 0.8GHz 부근에서부터 CPI가 급격히 증가하고 있다. FireFox의 경우 CPI가 평균적으로 높지만, 메모리 접근에 의한 영향은 ramsmp처럼 크게 나타나지는 않는다.
이상의 실험 결과로부터, 명령어 당 L2 캐시 미스 수, 즉 메모리 접근 수와 주파수 상관계수가 밀접한 관계를 가짐을 알 수 있다. 각 응용의 평균 1,000 명령어 당 L2 캐시 미스 수와 주파수 상관계수를 표 4에 정리하였다. 두 값의 상관관계(correlation)를 계산한 결과값은 -0.97296으로 매우 높은 부의 상관관계(평균 명령어 당 메모리 접근이 높으면 주파수 상관계수가 낮음)를 가짐을 알 수 있다.
[표 4] 1,000 명령어 당 L2 캐시 미스 횟수와 주파수 상관계수의 관계
Figure 112015089488614-pat00004
실험 결과 분석
주메모리에 대한 접근으로 인한 명령어 당 수행 시간을 증가를 실험 결과에 기반하여 예측하도록 한다. 타겟시 스템의 주메모리 수행 클럭은 800MHz이고 6.4GB/s의 전송속도를 가진다. L2 캐시의 미스가 발생했을 때 읽어 들이는 캐시 라인의 크기는 32B이므로 전송시간은 5ns이며, 메모리 읽기 지연시간(latency)은 5∼9 cycle로(비특허문헌 16 참조) 800MHz에서 6.25∼11.25ns이다. 따라서 L2 캐시 미스를 처리하기 위해 메모리 1회 읽기에 필요한 시간은 11.25∼16.25ns가 된다.
주어진 CPU 주파수 f와 L2 캐시 미스를 처리하기 위한 메모리 전송 시간 t에 대하여, 명령어 당 평균 메모리 접근에 필요한 CPU cycle 수는
f×t×(명령어 당 L2 캐시 미스) (1)
으로 계산할 수 있다. 캐시 접근에 필요한 CPU cycle 수를 무시한다면, 이렇게 계산된 cycle 수를 도 5에 나타난 CPI의 증가로 예상할 수 있다. 메모리 읽기 지연시간이 5 cycle인 경우와 9 cycle인 경우의 ramsmp와 FireFox를 대상으로 측정된 명령어 당 메모리 접근 횟수를 이용하여 CPI를 계산한 결과를 도 6에 보인다. 0.2 GHz에서의 CPI를 기준으로 하여, 명령어 당 L2 캐시 미스 수의 차이를 CPU cycle로 환산하여 계산하였다. ramsmp의 경우 1 GHz 이상에서는 메모리 주파수보다 높은 빈도의 메모리 접근이 발생하여 지연이 급격히 증가하게 된다.
CPU의 주파수를 동적으로 제어하는 방법
도 9는 본 발명의 일 실시예에 따른 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법의 흐름도이다. 이하, 도 9 를 참조하여, 본 발명의 일 실시예에 따른 CPU 의 주파수를 동적으로 제어하는 방법을 보다 상세히 설명한다.
도 9 에 도시된 바와 같이, 본 발명의 일 실시예에 따른 CPU 의 주파수를 동적으로 제어하는 방법은, 먼저, 소정의 어플리케이션의 실행시에 CPU 의 동작을 모니터링한다 (S910). 이러한 모니터링은 CPU 의 메모리에 대한 접근 빈도를 측정하는 것을 포함할 수 있다. 여기서, CPU 의 메모리에 대한 접근 빈도는, 소정의 어플리케이션의 실행 동안 최종 수준 캐시 미스 (Last Level Cache misses)의 수를 기반으로 측정될 수 있고, CPU 가 실행하는 명령어 당 메모리 접근 빈도를 기반으로 측정될 수 있다. 또한 전술한 바와 같이, CPU 의 최종 수준 캐시 미스의 수를 명령어의 개수로 나누어, 명령어 당 최종 수준 캐시 미스의 수를 기반으로 CPU 의 메모리에 대한 접근 빈도를 측정할 수도 있다.
이후, 측정된 CPU 의 메모리에 대한 접근 빈도를 기반으로, CPU 주파수 조정의 상한값을 결정한다(S920). 전술한 바와 같이, CPU 주파수 조정의 상한값은 상기 CPU 주파수의 증가가 상기 컴퓨팅 디바이스의 성능 향상에 더 이상 기여하지 못하게 되는 최소 주파수를 나타낼 수도 있다.
이어서, 결정된 CPU 주파수 조정의 상한값을 기반으로, CPU 의 주파수를 제어할 수 있다(S930).
한편, 도 10은 도 9 의 CPU 주파수 조정의 상한값을 결정하는 단계의 상세 흐름도이다. 도 10 에 도시된 바와 같이, CPU 주파수 조정의 상한값을 결정하는 단계 (S920) 는, 누설 전류에 의한 소비 전력이 CPU 의 전체 소비 전력에서 차지하는 비율을 0 내지 1 까지 소정 간격으로 변화시키면서, 각각의 비율에 따른 최적의 CPU 주파수들을 결정하는 단계 (S921) 및 결정된 각각의 비율에 따른 최적의 CPU 주파수들 중에서, 최대값인 주파수를 CPU 주파수 조정의 상한값으로 결정하는 단계 (S923) 를 포함할 수 있다.
보다 상세히 설명하면, CMOS 기반 칩의 전력 소모는 동적 전력 소모와 정적 전력 소모로 구분할 수 있다. 동적 전력은 스위칭 동작에 의해 소모되며, 정적 전력은 누설 전류에 의해 소모된다. 동적 전력은 인가전압의 제곱과 구동 주파수 f의 곱에 비례하며, 정적 전력은 f에 비례한다 (비특허문헌 9 참조). 인가 전압은 f와 비례하기 때문에, 일반적으로 동적 전력은 f3, 정적 전력은 f에 비례하는 것으로 가정한다. 정적 전력이 전체 전력 P에서 차지하는 비율을 a라고 하면, P는 (1-a)f3+af에 비례하게 된다. 이러한 가정에서, 에너지 소모와 성능의 균형을 이루기 위해서는 수행 시간과 소모 에너지 모두를 고려해야 한다. 따라서 프로그램의 수행시간을 T라고 할 때, 에너지와 T의 곱, 즉 전력×T2을 최소화하는 주파수를 찾을 수 있다. 즉, 어플리케이션의 수행시간과 상기 어플리케이션의 수행에 따른 소비 전력을 곱한 값을 최소화하는 주파수를 최적의 주파수로 결정할 수 있다. 이 값은 아래 식을 최소화하는 f의 값이 된다.
((1-a)f3+af)×T2 = ((1-a)f3+af)×(I×CPI(f)/f)2 = (CPI(f)×I)2 ((1-a)f+a/f) (2)
여기에서 I는 명령어 개수, CPI(f)는 주파수 f에서의 CPI를 나타낸다. I는 상수이므로, 결국
(CPI(f))2 ((1-a)f+a/f) (3)
의 값을 최소로 하는 f의 값을 찾게 된다.
전술한 바와 같이, CPI(f)는 명령어 당 L2 캐시 미스를 알아낼 수 있다면 주파수 상관관계와의 관계로부터 유추할 수 있다. 메모리 접근이 없는 경우의 CPI를 CPI0라고 하면,
CPI(f) = (1+t×f×MPI) CPI0 (4)
로 계산할 수 있다. 여기에서 MPI는 명령어당 L2 캐시 미스, t는 L2 캐시 미스를 처리하기 위한 메모리 전송시간이다. 식 (3)으로부터
((1-a)f+a/f)(1+t×f×MPI)2 CPI02 (5)
를 얻는다. 결국, 상기 식 (5) 가 최소의 값을 가지도록 하는 f 의 값을 최적의 CPU 주파수로서 결정할 수 있다. 식 (5)에서 최소값을 가지는 f를 구할 수 있고, 이에 대한 일반해는 하나의 실수근을 가진다. a=1 과 같은 특별한 경우, f=1/(t×MPI)로 구할 수 있으며, ramsmp에서 MPI는 약 0.056∼0.066이므로 메모리 시간 11.25ns∼16.25ns를 고려할 때 최적 주파수는 최대 1.58GHz에서 최소 0.93GHz 사이가 된다. 이 경우 식 (3)에서 (CPI(f))2 / f 의 값이 최소가 되는 f를 구한 것이 된다. 도 7은 ramsmp에 대한 이 값의 그래프를 보여주고 있다. 본 발명의 실험에서는 f=0.8GHz에서 최소값을 보이고 있다. 실험 데이터의 최소값과 식 (5)의 a=1로 계산한 값은 메모리 시간을 16.25ns로 가정할 때 0.9GHz로 동일하다.
이미 기술한 바와 같이, 본 발명은 현재 환경에 따른 최적 주파수를 제공하는 것을 목표로 하지 않으며, 에너지 대비 성능 이득을 가질 수 있는 상한을 지정하는 것을 목표로 한다. 실제 시스템에 있어 a의 값은 프로세서 특성 및 실행 시점의 환경에 따라 변동되기 때문에, 그 계산이 실제 이득이 될지도 불분명하다. 따라서 본 발명의 접근 방법에서는 표 5에서 나타난 최대 주파수인 0.8GHz를 DVFS 정책의 주파수 상한으로 사용할 수 있다.
즉, 누설 전류에 의한 소비 전력이 CPU 의 전체 소비 전력에서 차지하는 비율 a 를 0 내지 1 까지 소정 간격 (예들 들어, 0.1 간격) 으로 변화시키면서, 각각의 비율에 따른 최적의 CPU 주파수들을 결정 (S921) 하고, 결정된 각각의 비율에 따른 최적의 CPU 주파수들 중에서, 최대값인 주파수를 상기 CPU 주파수 조정의 상한값으로 결정 (S923) 할 수도 있다.
[표 5] 정적 전력 비율에 따른 ramsmp 의 최적 주파수 상한
Figure 112015089488614-pat00005
일반적인 시스템에 대하여 본 발명의 제안 방법을 적용하는 경우, 직접 측정을 통해 최적 주파수를 표 5와 같이 구하여 주파수 상한을 결정할 수도 있고, a=1일 경우 최대값을 구할 수 있으므로 f=1/(t×MPI)의 수식을 이용하여, 상기 수식의 f 를 CPU 주파수 조정의 상한값으로서 결정할 수도 있다. 직접 측정의 경우 더 정확한 값을 얻을 수 있을 것이나, 수식을 이용하는 경우 정확성을 희생하여 구현의 편리성을 도모할 수 있을 것이다.
상기와 같은 방법을 통해, 운영체제에서 명령어 수와 L2 캐시 미스를 모니터링 하여 MPI를 계산함으로써 DVFS 정책을 더욱 효율적으로 만들 수 있다. 이는 특히 주메모리 접근이 많은 응용, 즉 최종 수준 캐시(LLC, Last Level Cache)의 미스가 많은 경우 유용할 것이다. 식 (5)로부터, MPI의 값에 따라 최적 주파수 f를 결정할 수 있다.
예를 들어, 본 발명의 타겟 시스템에서 L2 캐시 미스를 처리하기 위한 주메모리의 데이터 전송시간이 11.25ns 또는 16.25ns일 경우, a의 값에 따른 ramsmp에 대한 최적 주파수는 표 5와 같이 계산되었다.
실제 DVFS 정책의 적용에 있어서는 시스템의 이용률을 고려해야하기 때문에, 표 5의 값으로 주파수를 고정하여 사용하기 보다는 DVFS 정책의 주파수 상한 값으로 설정하는 것이 올바를 수도 있다. 표 5의 값을 넘는 경우 주파수 상승으로 인한 이득이 적기 때문이다.
CPU 주파수 조정 제한의 효과를 직접 확인하기 위하여, ramsmp를 수행시켜 타겟 시스템의 전력 소모를 직접 측정하였으며, DVFS 정책은 기존의 Linux 정책인 Ondemand를 그대로 사용하고 CPU 주파수의 상한만 지정하였다. ramsmp에 대하여 표 5에 나타난 최대값인 0.8GHz를 CPU 주파수의 상한으로 하여 DVFS를 적용하였다.
도 8은 위와 같은 설정으로 ramsmp를 수행했을 때의 수행 결과를 보여준다. 도 8에서는 최고 주파수(1.4GHz)까지 변경되는 경우의 Performance, Ondemand 거버너와 Conservative 거버너를 사용하는 경우 성능과 비교하고 있다. 기존의 메모리 I/O를 고려한 DVFS에 대한 연구들은 최고 성능 대비 일정한 성능 저하를 감수하고 전력 소모를 감소하고자 하나, 본 발명의 제안 방법은 성능 저하와 전력 소모 감소의 균형을 맞추고자 하므로, 최고 성능을 유지하는 Performance 거버너와 성능을 비교하여 기존 연구들과의 비교를 대신한다.
도 8에서 볼 수 있는 바와 같이, CPU 주파수 상한 을 0.8GHz로 제한한 경우 수행시간의 차이는 거의 없으나 에너지 소모는 큰 폭으로 줄어드는 것을 확인할 수 있다. Joule-second로 계산해 보면, Ondemand 거버너를 사용한 경우는 약 3181.5 J·s, Conservative 거버너를 사용한 경우는 약 3230.2 J·s인 반면 0.8GHz로 최대 주파수를 제한한 경우 2085.3 J·s로 약 34.5%, 35.1% 감소하여 소모 에너지 대비 성능이 훨씬 더 높음을 알 수 있다.
이상, 본 명세서에서는 DVFS 기술을 적용한 임베디드 시스템상의 응용들의 메모리 접근 빈도를 이용하여 CPU 주파수 조정 상한을 결정하도록 하였다. 응용 프로그램들은 명령어 당 메모리 접근 (명령어 당 최종 수준 캐시 미스) 빈도에 따라 CPU 주파수 상향으로 인한 성능 향상이 제한되는 것을 실험으로 확인하였다. 메모리 접근 양상에 관계없이 주파수 상향에 따른 성능 향상은 선형적으로 가정할 수 있으나, 선형적 성능 향상의 정도는 메모리 접근 특성에 따라 다른 것으로 나타났다. 성능 향상에 영향을 미치는 인자는 명령어 당 메모리 접근과 최종 수준 캐시 미스를 처리하기 위한 메모리의 처리 속도에 가장 큰 영향을 받는다. 따라서 운영체제에서 명령어 당 메모리 접근을 모니터하면서 이 값에 따라 성능 향상 정도를 결정할 수 있으며, 그에 따라 에너지 소모와 성능 향상의 균형을 맞출 수 있는 CPU 주파수의 상한 값을 결정할 수 있다. 본 발명에서 제시된 기법을 적용한 실험 결과는 메모리 접근 빈도가 높은 응용의 경우 에너지 효율을 크게 높일 수 있는 것을 보이고 있다.
아울러, 상기에서는 본 발명을 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법으로서,
    소정의 어플리케이션의 실행시에 상기 CPU 의 동작을 모니터링하는 단계로서, 상기 모니터링은 상기 CPU 의 메모리에 대한 접근 빈도를 측정하는 것을 포함하는, 상기 CPU 의 동작을 모니터링하는 단계;
    상기 측정된 CPU 의 메모리에 대한 접근 빈도를 기반으로, CPU 주파수 조정의 상한값을 결정하는 단계; 및
    상기 결정된 CPU 주파수 조정의 상한값을 기반으로 상기 CPU 의 주파수를 제어하는 단계를 포함하며,
    상기 CPU 주파수 조정의 상한값을 결정하는 단계는 하기의 수학식의 f를 상기 CPU 주파수 조정의 상한값으로 결정하는 단계를 포함하는 CPU의 주파수를 동적으로 제어하는 방법.
    [수학식]
    f = 1/(t×MPI)
    단, t 는 캐시 미스를 처리하기 위한 메모리 전송 시간, MPI 는 명령어당 L2 캐시 미스를 나타냄.
  2. 제 1 항에 있어서,
    상기 CPU 주파수 조정의 상한값은 상기 CPU 주파수의 증가가 상기 컴퓨팅 디바이스의 성능 향상에 더 이상 기여하지 못하게 되는 최소 주파수를 나타내는, CPU의 주파수를 동적으로 제어하는 방법.
  3. 제 1 항에 있어서,
    상기 CPU 의 메모리에 대한 접근 빈도는, 상기 CPU 가 실행하는 명령어 당 메모리 접근 빈도를 기반으로 측정되는, CPU의 주파수를 동적으로 제어하는 방법.
  4. 제 1 항에 있어서,
    상기 CPU 의 메모리에 대한 접근 빈도는, 상기 어플리케이션의 실행 동안 최종 수준 캐시 미스 (Last Level Cache misses)의 수를 기반으로 측정되는, CPU의 주파수를 동적으로 제어하는 방법.
  5. 제 4 항에 있어서,
    상기 최종 수준 캐시는, 데이터 캐시인, CPU의 주파수를 동적으로 제어하는 방법.
  6. 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법으로서,
    소정의 어플리케이션의 실행시에 상기 CPU 의 동작을 모니터링하는 단계로서, 상기 모니터링은 상기 CPU 의 메모리에 대한 접근 빈도를 측정하는 것을 포함하는, 상기 CPU 의 동작을 모니터링하는 단계;
    상기 측정된 CPU 의 메모리에 대한 접근 빈도를 기반으로, CPU 주파수 조정의 상한값을 결정하는 단계; 및
    상기 결정된 CPU 주파수 조정의 상한값을 기반으로, 상기 CPU 의 주파수를 제어하는 단계를 포함하며,
    상기 CPU 주파수 조정의 상한값은 상기 CPU 의 메모리에 대한 접근 빈도가 상기 메모리의 동작 주파수보다 높게 발생하지 않도록 하는, CPU의 주파수를 동적으로 제어하는 방법.
  7. 컴퓨팅 디바이스의 중앙 프로세싱 유닛 (Central Processing Unit, CPU) 의 주파수를 동적으로 제어하는 방법으로서,
    소정의 어플리케이션의 실행시에 상기 CPU 의 동작을 모니터링하는 단계로서, 상기 모니터링은 상기 CPU 의 메모리에 대한 접근 빈도를 측정하는 것을 포함하는, 상기 CPU 의 동작을 모니터링하는 단계;
    상기 측정된 CPU 의 메모리에 대한 접근 빈도를 기반으로, CPU 주파수 조정의 상한값을 결정하는 단계; 및
    상기 결정된 CPU 주파수 조정의 상한값을 기반으로, 상기 CPU 의 주파수를 제어하는 단계를 포함하며,
    상기 CPU 주파수 조정의 상한값을 결정하는 단계는,
    누설 전류에 의한 소비 전력이 상기 CPU 의 전체 소비 전력에서 차지하는 비율을 0 내지 1 까지 소정 간격으로 변화시키면서, 각각의 비율에 따른 최적의 CPU 주파수들을 결정하는 단계; 및
    상기 결정된 각각의 비율에 따른 최적의 CPU 주파수들 중에서, 최대값인 주파수를 상기 CPU 주파수 조정의 상한값으로 결정하는 단계를 포함하는, CPU의 주파수를 동적으로 제어하는 방법.
  8. 제 7 항에 있어서,
    상기 최적의 CPU 주파수는 상기 어플리케이션의 수행시간과 상기 어플리케이션의 수행에 따른 소비 전력을 곱한 값을 최소화하는 주파수인, CPU의 주파수를 동적으로 제어하는 방법.
  9. 제 7 항에 있어서,
    상기 최적의 CPU 주파수는 하기의 수학식이 최소의 값을 가지도록 하는 f 의 값인, CPU의 주파수를 동적으로 제어하는 방법.
    ((1-a)f+a/f)(1+t×f×MPI)2 CPI02
    단, 여기서 a 는 누설 전류에 의한 소비 전력이 상기 CPU 의 전체 소비 전력에서 차지하는 비율, f 는 CPU 의 주파수, t 는 캐시 미스를 처리하기 위한 메모리 전송 시간, MPI 는 명령어당 캐시 미스, CPI0 은 메모리 접근이 없는 경우의 CPI (Cycles Per Instruction) 을 나타낸다.
  10. 삭제
KR1020150130177A 2015-09-15 2015-09-15 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법 KR101666549B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150130177A KR101666549B1 (ko) 2015-09-15 2015-09-15 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150130177A KR101666549B1 (ko) 2015-09-15 2015-09-15 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법

Publications (1)

Publication Number Publication Date
KR101666549B1 true KR101666549B1 (ko) 2016-10-17

Family

ID=57250125

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150130177A KR101666549B1 (ko) 2015-09-15 2015-09-15 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법

Country Status (1)

Country Link
KR (1) KR101666549B1 (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101803284B1 (ko) 2016-11-15 2017-12-04 인천대학교 산학협력단 메모리 사용량에 근거한 에너지 효율적 디바이스 주파수 변경 방법 및 장치
KR20180071056A (ko) * 2016-12-19 2018-06-27 서울대학교산학협력단 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체
KR20190109408A (ko) * 2017-01-26 2019-09-25 에이티아이 테크놀로지스 유엘씨 적응적 전력 제어 루프
KR20210064044A (ko) * 2019-11-25 2021-06-02 울산과학기술원 모바일 단말기에서 인공 신경망 추론을 수행하기 위한 장치 및 방법
US11243604B2 (en) 2019-09-16 2022-02-08 Samsung Electronics Co., Ltd. Method of performing dynamic voltage and frequency scaling based on power step
WO2023008819A1 (ko) * 2021-07-30 2023-02-02 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 방법
WO2024014884A1 (ko) * 2022-07-12 2024-01-18 삼성전자 주식회사 Cpu 클럭을 제어하는 전자 장치, 그 동작 방법, 및 저장 매체
KR102633382B1 (ko) * 2023-09-21 2024-02-05 주식회사 다컴시스템 Cpu 코어 클록 속도 변화를 통하여 절전을 행하는 에너지 절감형 컴퓨터 시스템 및 그 제어 방법
US12019500B2 (en) 2021-06-24 2024-06-25 Samsung Electronics Co., Ltd. Integrated circuit performing dynamic voltage and frequency scaling operation and operating method for same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261870A (ja) * 1994-02-23 1995-10-13 Advanced Risc Mach Ltd データ処理装置および方法
KR101183845B1 (ko) * 2007-10-11 2012-09-18 퀄컴 인코포레이티드 그래픽스 프로세싱 유닛에서의 디맨드-기반 전력 제어
KR20140067581A (ko) * 2012-11-27 2014-06-05 포항공과대학교 산학협력단 그래픽 처리 장치의 전력 관리 방법 및 전력 관리 시스템
KR20150010462A (ko) * 2013-07-19 2015-01-28 삼성전자주식회사 모바일 장치 및 그것의 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261870A (ja) * 1994-02-23 1995-10-13 Advanced Risc Mach Ltd データ処理装置および方法
KR101183845B1 (ko) * 2007-10-11 2012-09-18 퀄컴 인코포레이티드 그래픽스 프로세싱 유닛에서의 디맨드-기반 전력 제어
KR20140067581A (ko) * 2012-11-27 2014-06-05 포항공과대학교 산학협력단 그래픽 처리 장치의 전력 관리 방법 및 전력 관리 시스템
KR20150010462A (ko) * 2013-07-19 2015-01-28 삼성전자주식회사 모바일 장치 및 그것의 제어 방법

Non-Patent Citations (16)

* Cited by examiner, † Cited by third party
Title
ARM Limited (2012, Dec. 19), "PrimeCell Level 2 Cache Controller (PL310) Technical Reference Manual," [Online]. Available: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0246c/DDI0246C_l2cc_pl310_r2p0_trm.pdf (retrieved 2014, Mar. 25)
C. Poellabauer, L. Singleton, and K. Schwan, "Feedback Based Dynamic Voltage and Frequency Scaling for Memory-bound Real-time Applications," Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium, pp.234-243, 2005.
D. Brodowski, "Linux CPUFreq Governors," [Online]. Available: https://www.kernel.org/doc /Documentation/cpu-freq/governors.txt (retrieved 2014, Mar. 25)
D. Marculescu, "On the Usage of Microarchitecturedriven Dynamic Voltage Scaling," Proceedings of the Workshop on Complexity-Effective Design, 2000.
http://icl.cs.utk.edu/projects/llcbench/
http://web2.clarkson.edu/class/cs644/isolation/index.html
http://www.webkit.org/perf/sunspider/sunspider.html
K. Choi, R. Soma, and M. Pedram, "Dynamic Voltage and Frequency Scaling Based on Workload Decomposition," Proceedings of the 2004 International Symposium on Low Power Electronics and Design, pp.174-179, 2004.
K. Rajamani, H. Hanson, J. Rubio, S.Ghiasi, and F. Rawson, "Application-Aware Power Management," Proceedings of the IEEE Symposium on Workload Characterization, pp.39-48, 2006.
M. R. Hollander and P. V. Bolotoff, "RAMspeed, a cache and memory benchmarking tool," [Online]. Available: http://alasir.com/software/ramspeed/ (retrieved 2014, Mar. 25)
M. Weiser, B. Welch, A.J. Demer, and S. Shenker, "Scheduling for Reduced CPU Energy," Proceedings of the 1st USENIX Conf. on Operating Systems Design and Implementation, pp.13-23, 1994.
M.A. Laurenzano, M. Meswani, L. Carrington, A. Snavely, M.M. Tiki, S. Poole, "Reducing Energy Usage with Memory and Computation-aware Dynamic Frequency Scaling," Proceedings of the 17th International Conference of Parallel Processing, pp.79-90, 2011.
Q. Wu, M. Martonosi, D.W. Clark, V.J. Reddis, D. Connors, Y. Wu, J. Lee, and D. Brooks, "A Dynamic Compilation Framework for Controlling Microprocessor Energy and Performance," MICRO 38: Proceedings of the 38th Annual IEEE/ACM International Symposium on Microarchitecture, pp.271-282, 2005.
R. Miftakhutdinov, E. Ebrahimi, and Y.N. Patt, "Predicting Performance Impact of DVFS for Realistic Memory Systems," Proceedings of the 45th Annual IEEE/ACM International Symposium on Microarchitecture, pp.155-165, 2012.
Samsung Electronics, "DDR3 SDRAM Specification," Rev.1.4, Nov. 2011.
V. Venkatachalam and M. Franz, "A New Way of Estimating Compute-boundedness and Its Application to Dynamic Voltage Scaling," International Journal of Embedded Systems, vol.3, nos.1/2, pp.17-30, 2007.

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101803284B1 (ko) 2016-11-15 2017-12-04 인천대학교 산학협력단 메모리 사용량에 근거한 에너지 효율적 디바이스 주파수 변경 방법 및 장치
KR20180071056A (ko) * 2016-12-19 2018-06-27 서울대학교산학협력단 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체
KR101984261B1 (ko) * 2016-12-19 2019-05-30 서울대학교 산학협력단 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체
KR20190109408A (ko) * 2017-01-26 2019-09-25 에이티아이 테크놀로지스 유엘씨 적응적 전력 제어 루프
KR102210355B1 (ko) 2017-01-26 2021-02-01 에이티아이 테크놀로지스 유엘씨 적응적 전력 제어 루프
US11243604B2 (en) 2019-09-16 2022-02-08 Samsung Electronics Co., Ltd. Method of performing dynamic voltage and frequency scaling based on power step
KR20210064044A (ko) * 2019-11-25 2021-06-02 울산과학기술원 모바일 단말기에서 인공 신경망 추론을 수행하기 위한 장치 및 방법
KR102422545B1 (ko) 2019-11-25 2022-07-20 울산과학기술원 모바일 단말기에서 인공 신경망 추론을 수행하기 위한 장치 및 방법
US12019500B2 (en) 2021-06-24 2024-06-25 Samsung Electronics Co., Ltd. Integrated circuit performing dynamic voltage and frequency scaling operation and operating method for same
WO2023008819A1 (ko) * 2021-07-30 2023-02-02 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 방법
WO2024014884A1 (ko) * 2022-07-12 2024-01-18 삼성전자 주식회사 Cpu 클럭을 제어하는 전자 장치, 그 동작 방법, 및 저장 매체
KR102633382B1 (ko) * 2023-09-21 2024-02-05 주식회사 다컴시스템 Cpu 코어 클록 속도 변화를 통하여 절전을 행하는 에너지 절감형 컴퓨터 시스템 및 그 제어 방법

Similar Documents

Publication Publication Date Title
KR101666549B1 (ko) 컴퓨팅 디바이스의 중앙 프로세싱 유닛의 주파수를 동적으로 제어하는 방법
Shao et al. Energy characterization and instruction-level energy model of Intel's Xeon Phi processor
Zhu et al. High-performance and energy-efficient mobile web browsing on big/little systems
Huang et al. Energy-efficient cluster computing via accurate workload characterization
Ge et al. Effects of dynamic voltage and frequency scaling on a k20 gpu
Keramidas et al. Interval-based models for run-time DVFS orchestration in superscalar processors
Tang et al. Compiling for niceness: Mitigating contention for qos in warehouse scale computers
Paul et al. Cooperative boosting: Needy versus greedy power management
US8812808B2 (en) Counter architecture for online DVFS profitability estimation
Srinivasan et al. Efficient interaction between OS and architecture in heterogeneous platforms
Haj-Yihia et al. Fine-grain power breakdown of modern out-of-order cores and its implications on skylake-based systems
Huang et al. Accurate fine-grained processor power proxies
Paul et al. Coordinated energy management in heterogeneous processors
Goel et al. A methodology for modeling dynamic and static power consumption for multicore processors
Rauber et al. Energy measurement, modeling, and prediction for processors with frequency scaling
Sundriyal et al. Joint frequency scaling of processor and DRAM
US20090210740A1 (en) Off-chip access workload characterization methodology for optimizing computing efficiency
Yun et al. System-wide energy optimization for multiple DVS components and real-time tasks
Rauber et al. Performance and energy metrics for multi-threaded applications on DVFS processors
Lawson et al. Runtime power limiting of parallel applications on Intel Xeon Phi processors
Sankaran Predictive modeling based power estimation for embedded multicore systems
Mukhanov et al. Alea: A fine-grained energy profiling tool
Cebrian et al. Improving energy efficiency through parallelization and vectorization on intel core i5 and i7 processors
Livingston et al. Computer using too much power? give it a rest (runtime energy saving technology)
Ma et al. Improving lifetime of multicore soft real-time systems through global utilization control

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 4