KR20180071056A - Apparatus and method for dynamic frequency scaling, and recording medium - Google Patents

Apparatus and method for dynamic frequency scaling, and recording medium Download PDF

Info

Publication number
KR20180071056A
KR20180071056A KR1020160173797A KR20160173797A KR20180071056A KR 20180071056 A KR20180071056 A KR 20180071056A KR 1020160173797 A KR1020160173797 A KR 1020160173797A KR 20160173797 A KR20160173797 A KR 20160173797A KR 20180071056 A KR20180071056 A KR 20180071056A
Authority
KR
South Korea
Prior art keywords
performance index
target
frequency
fps
range
Prior art date
Application number
KR1020160173797A
Other languages
Korean (ko)
Other versions
KR101984261B1 (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 KR1020160173797A priority Critical patent/KR101984261B1/en
Publication of KR20180071056A publication Critical patent/KR20180071056A/en
Application granted granted Critical
Publication of KR101984261B1 publication Critical patent/KR101984261B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/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/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • Y02D10/126
    • Y02D10/152

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

Disclosed are a dynamic frequency scaling apparatus, a dynamic frequency scaling method, and a recording medium. According to an embodiment of the present invention, the dynamic frequency scaling method includes: a learning step of calculating a target frequency for a processing device by determining a minimum frequency that satisfies a maximum performance index of an application program among frequencies allowable to the processing device executing the application program, and setting a target performance index range based on the maximum performance index; and a tracking step of scaling an operating frequency of the processing device based on the performance index, calculated during the execution of the application program, the target performance index range, and the target frequency. According to the embodiment of the present invention, it is unnecessary to perform a static analysis before the execution of the application program, and a high power gain is obtained by performing dynamic frequency scaling that satisfies performance requirements in real time.

Description

동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체{APPARATUS AND METHOD FOR DYNAMIC FREQUENCY SCALING, AND RECORDING MEDIUM}TECHNICAL FIELD [0001] The present invention relates to a dynamic frequency adjusting apparatus, a dynamic frequency adjusting apparatus, a dynamic frequency adjusting apparatus,

본 발명은 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체에 관한 것으로, 보다 상세하게는 응용프로그램의 실시간 성능지표에 적응적으로 응용프로그램을 실행시키는 처리 장치의 동작 주파수를 조절하여 전력을 저감하는 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체에 관한 것이다.The present invention relates to a dynamic frequency adjusting apparatus, a dynamic frequency adjusting method, and a recording medium, and more particularly, to a dynamic frequency adjusting apparatus, a dynamic frequency adjusting method, and a recording medium for reducing power by adjusting an operating frequency of a processing apparatus, A dynamic frequency adjusting method, and a recording medium.

복잡한 모바일 게임이나 증강 현실과 같이, 모바일 환경에서 고사양의 그래픽을 요구하는 응용들이 많아지고 있다. 모바일 기기는 제한된 에너지 용량의 배터리를 전력원으로 사용하므로, 응용의 서비스 품질에 대한 요구를 만족하면서 기기에 사용되는 전력을 효율적으로 관리하는 것이 매우 중요한 요소이다.Like complex mobile games and augmented reality, applications are increasingly demanding high-end graphics in mobile environments. Since mobile devices use batteries with a limited energy capacity as a power source, it is very important to efficiently manage the power used in the devices while satisfying the demand for application quality of service.

효율적으로 전력을 관리하는 기법으로 가장 많이 사용되는 것이 동적으로 중앙처리장치(CPU) 또는 그래픽처리장치(GPU)의 동작 주파수를 조절하는 동적 전압 주파수 스케일링(DVFS; Dynamic Voltage Frequency Scaling) 기법이다. 다양한 DVFS 기법 중 현재 GPU에 가장 많이 사용되는 것은 온디멘드(On-demand) DVFS 기법이다. 이 기법은 처리장치의 사용율(utilization)을 지표로 하여, 사용율이 임계 범위 밖에 있는 경우 처리장치의 동작 주파수를 바꾸는 방식으로 전력 관리를 수행한다. 그러나 이 기법은 모바일 게임의 대표적인 서비스 품질지표인 프레임율(FPS; Frame Per Second) 성능을 보장하지 못하는 단점이 있다.One of the most efficient techniques for power management is dynamic voltage frequency scaling (DVFS), which dynamically adjusts the operating frequency of a central processing unit (CPU) or a graphics processing unit (GPU). Of the various DVFS techniques, the on-demand DVFS technique is most often used for GPU. This technique performs power management in such a manner that the utilization rate of the processing apparatus is used as an index and the operating frequency of the processing apparatus is changed when the utilization rate is outside the critical range. However, this technique has a disadvantage in that it can not guarantee frame rate (FPS) performance, which is a representative quality of service indicator of mobile games.

온디멘드 DVFS 기법의 문제를 해결하기 위해, 최근에 FPS를 지표로 사용하는 DVFS 기법들이 제안되었다. 이 기법들은 현재 FPS가 목표 FPS보다 높은 경우에는 동작 주파수를 낮추고, 현재 FPS가 목표 FPS보다 낮은 경우에는 동작 주파수를 올리는 방식으로 전력 관리를 수행한다. 이러한 FPS 기반 기법들의 경우, 목표 FPS가 미리 설정되어 있으며, 다양한 응용들에 대해 효율적으로 전력을 관리하지 못한다. 또한, 종래의 방식은 응용프로그램 실행 전에 정적인 회귀 분석을 통해 FPS에 따른 주파수 스케일 값을 설정해야만 하는 단점을 갖는다. 또한, CPU 클러스터들과 GPU가 모두 사용되는 이종 멀티 프로세싱 컴퓨터 시스템의 경우, 오프라인 회귀분석을 통해 처리부들(CPU, GPU)의 사용율과 FPS 성능의 관계를 도출하기 쉽지 않다.In order to solve the problem of the on-demand DVFS technique, DVFS techniques using FPS as an index have recently been proposed. These techniques lower the operating frequency when the current FPS is higher than the target FPS and perform the power management by raising the operating frequency when the current FPS is lower than the target FPS. In the case of these FPS-based techniques, the target FPS is set in advance and the power can not be efficiently managed for various applications. In addition, the conventional method has a disadvantage that the frequency scale value according to the FPS must be set through static regression analysis before execution of the application program. Also, in the case of a heterogeneous multiprocessing computer system in which both CPU clusters and GPUs are used, it is not easy to derive the relationship between the usage rate of processors (CPU, GPU) and FPS performance through offline regression analysis.

본 발명은 응용프로그램의 실행 전에 정적 분석을 수행할 필요 없이, 실시간으로 성능 요구사항을 만족하는 동적 주파수 조절을 수행하여 높은 전력 이득을 얻을 수 있는 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체를 제공하는 것을 목적으로 한다.The present invention relates to a dynamic frequency control device, a dynamic frequency control method, and a recording medium, which can achieve high power gain by performing dynamic frequency control that satisfies performance requirements in real time without performing static analysis before execution of an application program The purpose is to provide.

또한 본 발명은 이종 컴퓨터 시스템을 구성하는 처리부들의 동작 주파수를 사용율 및 성능지표(예를 들어, FPS)에 기반하여 적응적으로 조절하여, 낮은 전력으로 고사양의 응용프로그램을 실행시킬 수 있는 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체를 제공하는 것을 목적으로 한다.In addition, the present invention can adaptively adjust the operation frequency of the processing units constituting the heterogeneous computer system based on the utilization rate and the performance index (for example, FPS) An apparatus, a dynamic frequency adjustment method, and a recording medium.

본 발명이 해결하고자 하는 과제는 이상에서 언급된 과제로 제한되지 않는다. 언급되지 않은 다른 기술적 과제들은 이하의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems. Other technical subjects not mentioned will be apparent to those skilled in the art from the description below.

본 발명의 일 측면에 따른 동적 주파수 조절 장치는 응용프로그램을 실행시키는 처리 장치에 대해 허용 가능한 주파수들 중 상기 응용프로그램의 최대 성능지표를 만족시키는 최소 주파수를 결정하여 상기 처리 장치에 대한 목표 주파수를 산출하고, 상기 최대 성능지표를 기반으로 목표 성능지표 범위를 설정하며, 상기 응용프로그램의 실행 중에 산출되는 성능지표와 상기 목표 성능지표 범위 및 상기 목표 주파수를 기반으로 상기 처리 장치의 동작 주파수를 조절한다.A dynamic frequency adjustment apparatus according to an aspect of the present invention determines a minimum frequency that satisfies a maximum performance index of an application program among allowable frequencies for a processing apparatus that executes an application program and calculates a target frequency for the processing apparatus Sets a target performance index range based on the maximum performance index, and adjusts the operating frequency of the processing apparatus based on the performance index calculated during execution of the application program, the target performance index range, and the target frequency.

상기 동적 주파수 조절 장치는, 상기 처리 장치에 대해 허용 가능한 주파수들 중 상기 최대 성능지표를 만족시키는 최소 주파수를 상기 목표 주파수로 산출하고, 상기 최대 성능지표를 기반으로 상기 목표 성능지표 범위의 상한값과 하한값을 결정하는 학습부; 상기 응용프로그램의 실행 중에 산출되는 성능지표가 상기 목표 성능지표 범위에서 벗어나는지 감시하여, 상기 처리 장치의 동작 주파수를 증가시키거나 상기 학습부에 상기 목표 성능지표 범위를 재결정하도록 요청하는 추적부; 및 상기 추적부에 의해 상기 처리 장치의 동작 주파수가 증가된 후 상기 응용프로그램에 대해 산출되는 현재 성능지표를 상기 목표 성능지표 범위와 비교하여 상기 성능지표의 감소 원인을 분석하는 확인부;를 포함할 수 있다.Wherein the dynamic frequency adjustment device calculates the minimum frequency that satisfies the maximum performance index among the allowable frequencies for the processing device at the target frequency and calculates an upper limit value and a lower limit value of the target performance index range based on the maximum performance index A learning unit for determining a learning result; A tracking unit for monitoring whether the performance index calculated during execution of the application program is out of the target performance index range and increasing the operation frequency of the processing unit or requesting the learning unit to re-determine the target performance index range; And a verification unit for comparing the current performance index calculated for the application program with the target performance indicator range after the operating frequency of the processing unit is increased by the tracking unit and analyzing the cause of the decrease in the performance indicator .

상기 처리 장치는 복수의 처리부를 포함하고, 상기 학습부는, 상기 복수의 처리부의 사용율을 기반으로 상기 복수의 처리부에 대하여 우선순위를 결정하고, 상기 우선순위에 따라 순차적으로 상기 복수의 처리부에 대해 상기 최대 성능지표를 만족하는 최소 주파수들의 조합을 결정하여 목표 주파수들을 산출할 수 있다.Wherein the processing unit includes a plurality of processing units, wherein the learning unit determines a priority order for the plurality of processing units based on a usage rate of the plurality of processing units, sequentially orders the plurality of processing units The target frequencies can be calculated by determining the combination of the minimum frequencies satisfying the maximum performance index.

상기 추적부는, 상기 성능지표가 상기 목표 성능지표 범위의 하한값보다 작은 경우, 상기 성능지표와 상기 최대 성능지표 및 상기 목표 주파수를 기반으로 상기 동작 주파수를 증가시킨 후, 상기 확인부에 상기 성능지표의 감소 원인 분석을 요청하고, 상기 성능지표가 상기 목표 성능지표 범위의 상한값보다 큰 경우, 상기 주파수들 중 최대 주파수를 상기 동작 주파수로 설정한 후, 상기 학습부에 상기 목표 성능지표 범위 및 상기 목표 주파수의 재설정을 요청하며, 상기 성능지표가 상기 목표 성능지표 범위를 만족하는 경우, 상기 처리 장치의 사용율을 설정된 임계값과 비교하여, 상기 사용율이 상기 임계값보다 작은 경우, 상기 동작 주파수를 감소시킬 수 있다.Wherein the tracking unit increases the operating frequency based on the performance indicator, the maximum performance indicator, and the target frequency when the performance indicator is smaller than the lower limit value of the target performance indicator range, And when the performance index is larger than the upper limit value of the target performance index range, after setting the maximum frequency among the frequencies as the operation frequency, the learning performance index range and the target frequency And when the performance index satisfies the target performance index range, compares the usage rate of the processing apparatus with a preset threshold value, and when the utilization rate is smaller than the threshold value, have.

상기 확인부는, 상기 현재 성능지표가 상기 목표 성능지표 범위를 만족하지 않는 것으로 판단되는 경우, 상기 현재 성능지표를 상기 동작 주파수가 증가되기 전에 산출된 과거 성능지표와 비교하고, 상기 현재 성능지표가 상기 과거 성능지표보다 감소되는 것으로 판단되는 경우, 상기 현재 성능지표를 기반으로 상기 동작 주파수를 조절한 후, 상기 학습부에 상기 목표 성능지표 범위의 재설정을 요청할 수 있다.Wherein the confirming unit compares the current performance indicator with a past performance indicator calculated before the operation frequency is increased when it is determined that the current performance indicator does not satisfy the target performance indicator range, The control unit may request the learning unit to reset the target performance index range after adjusting the operation frequency based on the current performance index.

본 발명의 다른 측면에 따르면, 응용프로그램을 실행시키는 처리 장치에 허용 가능한 주파수들 중 상기 응용프로그램의 최대 성능지표를 만족시키는 최소 주파수를 결정하여 상기 처리 장치에 대한 목표 주파수를 산출하고, 상기 최대 성능지표를 기반으로 목표 성능지표 범위를 설정하는 학습 단계; 및 상기 응용프로그램의 실행 중에 산출되는 성능지표와 상기 목표 성능지표 범위 및 상기 목표 주파수를 기반으로 상기 처리 장치의 동작 주파수를 조절하는 추적 단계;를 포함하는 동적 주파수 조절 방법이 제공된다.According to another aspect of the present invention, a target frequency for the processing apparatus is determined by determining a minimum frequency that satisfies the maximum performance index of the application program among the allowable frequencies of the processing apparatus executing the application program, A learning step of setting a target performance indicator range based on the indicator; And a tracking step of adjusting the operating frequency of the processing apparatus based on the performance index calculated during execution of the application program, the target performance index range, and the target frequency.

상기 동적 주파수 조절 방법은 상기 추적 단계에서 상기 처리 장치의 동작 주파수가 증가된 후 상기 응용프로그램에 대해 산출되는 현재 성능지표를 상기 목표 성능지표 범위와 비교하여 상기 성능지표의 감소 원인을 분석하는 확인 단계;를 더 포함할 수 있다.Wherein the dynamic frequency adjustment method further comprises the step of comparing the current performance index calculated for the application program with the target performance index range after the operating frequency of the processing apparatus is increased in the tracking step, ; ≪ / RTI >

상기 추적 단계는, 상기 성능지표가 상기 목표 성능지표 범위의 하한값보다 작은 경우, 상기 성능지표와 상기 최대 성능지표 및 상기 목표 주파수를 기반으로 상기 동작 주파수를 증가시킨 후, 상기 성능지표의 감소 원인을 판별하기 위해 상기 확인 단계로 전환하는 단계; 상기 성능지표가 상기 목표 성능지표 범위의 상한값보다 큰 경우, 상기 주파수들 중 최대 주파수를 상기 처리 장치의 동작 주파수로 설정한 후, 상기 목표 성능지표 범위 및 상기 목표 주파수를 재설정하기 위해 상기 학습 단계로 전환하는 단계; 및 상기 성능지표가 상기 목표 성능지표 범위를 만족하는 경우, 상기 처리 장치의 사용율을 설정된 임계값과 비교하여, 상기 사용율이 상기 임계값보다 작은 경우, 상기 처리 장치의 동작 주파수를 감소시키는 단계;를 포함할 수 있다.Wherein the tracking step increases the operating frequency based on the performance index, the maximum performance index and the target frequency when the performance index is smaller than the lower limit value of the target performance index range, Switching to the confirming step for discrimination; Setting the maximum frequency among the frequencies to the operating frequency of the processing device when the performance index is larger than the upper limit value of the target performance index range, and then returning the target performance index range and the target frequency to the learning step Switching; And when the performance index satisfies the target performance index range, comparing the usage rate of the processing device with a preset threshold value, and decreasing an operation frequency of the processing device when the utilization rate is less than the threshold value .

상기 확인 단계는, 상기 현재 성능지표를 상기 목표 성능지표 범위와 비교하여, 상기 현재 성능지표가 상기 목표 성능지표 범위를 만족하지 않는 것으로 판단되는 경우, 상기 현재 성능지표를 상기 동작 주파수가 증가되기 전에 산출된 과거 성능지표와 비교하는 단계; 및 상기 현재 성능지표가 상기 과거 성능지표보다 감소되는 것으로 판단되는 경우, 상기 현재 성능지표, 상기 최대 성능지표 및 상기 목표 주파수를 기반으로 상기 동작 주파수를 조절한 후, 상기 목표 성능지표 범위의 재설정을 위해 상기 학습 단계로 전환하는 단계;를 포함할 수 있다.Wherein the confirming step compares the current performance indicator with the target performance indicator range so that when the current performance indicator does not satisfy the target performance indicator range, Comparing with the calculated past performance indicators; And adjusting the operating frequency based on the current performance index, the maximum performance index, and the target frequency when the current performance index is determined to be smaller than the past performance index, And switching to the learning step in order to perform the learning.

상기 학습 단계는, 상기 처리 장치를 구성하는 복수의 처리부의 사용율을 기반으로 상기 복수의 처리부에 대하여 우선순위를 결정하는 단계; 및 상기 우선순위에 따라 순차적으로 상기 복수의 처리부에 대해 상기 최대 성능지표를 만족하는 최소 주파수들의 조합을 결정하여 목표 주파수들을 산출하는 단계;를 포함할 수 있다.Wherein the learning step comprises the steps of: determining a priority order for the plurality of processing units based on utilization rates of the plurality of processing units constituting the processing apparatus; And calculating target frequencies by sequentially determining a combination of the minimum frequencies satisfying the maximum performance index for the plurality of processors in accordance with the priority order.

본 발명의 또 다른 측면에 따르면, 상기 동적 주파수 조절 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체가 제공된다.According to another aspect of the present invention, there is provided a computer-readable recording medium on which a program for executing the dynamic frequency adjustment method is recorded.

본 발명의 실시예에 의하면, 응용프로그램의 실행 전에 정적 분석을 수행할 필요가 없으며, 실시간으로 성능 요구사항을 만족하는 동적 주파수 조절을 수행하여 높은 전력 이득을 얻을 수 있는 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체가 제공된다.According to the embodiment of the present invention, it is possible to provide a dynamic frequency adjusting device capable of obtaining a high power gain by performing dynamic frequency adjustment that satisfies performance requirements in real time without performing static analysis before execution of an application program, An adjustment method and a recording medium are provided.

또한, 본 발명의 실시예에 의하면, 이종 컴퓨터 시스템을 구성하는 처리부들의 동작 주파수를 사용율 및 성능지표(예를 들어, FPS)에 기반하여 적응적으로 조절하여, 낮은 전력으로 고사양의 응용프로그램을 실행시킬 수 있는 동적 주파수 조절 장치, 동적 주파수 조절 방법 및 기록 매체가 제공된다.In addition, according to the embodiment of the present invention, the operation frequency of the processing units constituting the heterogeneous computer system is adaptively adjusted based on the utilization rate and the performance index (for example, FPS) to execute the high- A dynamic frequency adjusting method, and a recording medium are provided.

본 발명의 효과는 상술한 효과들로 제한되지 않는다. 언급되지 않은 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects described above. Unless stated, the effects will be apparent to those skilled in the art from the description and the accompanying drawings.

도 1은 본 발명의 실시예에 따른 동적 주파수 조절 장치를 포함하는 컴퓨터 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 동적 주파수 조절 장치의 구성도이다.
도 3은 본 발명의 실시예에 따른 동적 주파수 조절 방법의 전체 흐름도이다.
도 4는 도 3의 단계 S100의 상태도이다.
도 5는 프레임 생성시점, FPS 업데이트 시점, 주파수 조절 시점을 보여주는 시간 다이어그램이다.
도 6은 도 4에 도시된 학습 상태를 구체화하여 보여주는 상태도이다.
도 7은 본 발명의 실시예에 따른 동적 주파수 조절 방법을 구성하는 추적 단계의 흐름도이다.
도 8은 본 발명의 실시예에 따른 동적 주파수 조절 방법을 구성하는 확인 단계의 흐름도이다.
도 9 내지 도 12는 본 발명의 실시예에 따른 동적 주파수 조절 방법의 성능(전력 이득, FPS)을 보여주는 그래프이다.
1 is a block diagram of a computer system including a dynamic frequency adjusting apparatus according to an embodiment of the present invention.
2 is a configuration diagram of a dynamic frequency adjusting apparatus according to an embodiment of the present invention.
3 is an overall flowchart of a dynamic frequency adjustment method according to an embodiment of the present invention.
4 is a state diagram of step S100 of FIG.
5 is a time diagram showing a frame generation time point, an FPS update time point, and a frequency adjustment time point.
FIG. 6 is a state diagram illustrating the learning state shown in FIG. 4 in detail.
7 is a flowchart of a tracking step constituting a dynamic frequency adjustment method according to an embodiment of the present invention.
FIG. 8 is a flow chart of an identifying step for configuring a dynamic frequency adjusting method according to an embodiment of the present invention.
9 to 12 are graphs showing performance (power gain, FPS) of the dynamic frequency adjustment method according to the embodiment of the present invention.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술하는 실시예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되지 않으며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 갖는다. 공지된 구성에 대한 일반적인 설명은 본 발명의 요지를 흐리지 않기 위해 생략될 수 있다. 본 발명의 도면에서 동일하거나 상응하는 구성에 대하여는 가급적 동일한 도면부호가 사용된다.Other advantages and features of the present invention and methods of achieving them will be apparent by referring to the embodiments described hereinafter in detail with reference to the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, and the present invention is only defined by the scope of the claims. Although not defined, all terms (including technical or scientific terms) used herein have the same meaning as commonly accepted by the generic art in the prior art to which this invention belongs. A general description of known configurations may be omitted so as not to obscure the gist of the present invention. In the drawings of the present invention, the same reference numerals are used as many as possible for the same or corresponding configurations.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 본 출원에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. In the present application, the terms "comprises", "having", or "having" are intended to specify the presence of stated features, integers, steps, operations, components, Steps, operations, elements, parts, or combinations thereof, whether or not explicitly described or implied by the accompanying claims.

본 명세서 전체에서 사용되는 '~부'는 적어도 하나의 기능이나 동작을 처리하는 단위로서, 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부'가 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.Used throughout this specification may refer to a hardware component such as, for example, software, FPGA or ASIC, as a unit for processing at least one function or operation. However, "to" is not meant to be limited to software or hardware. &Quot; to " may be configured to reside on an addressable storage medium and may be configured to play one or more processors.

일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함할 수 있다. 구성요소와 '~부'에서 제공하는 기능은 복수의 구성요소 및 '~부'들에 의해 분리되어 수행될 수도 있고, 다른 추가적인 구성요소와 통합될 수도 있다.As an example, the term '~' includes components such as software components, object-oriented software components, class components and task components, and processes, functions, attributes, procedures, Routines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided by the components and components may be performed separately by a plurality of components and components, or may be integrated with other additional components.

본 발명의 실시예에 따른 동적 주파수 조절 장치는 응용프로그램을 실행시키는 처리 장치에 적용 가능한 주파수들 중 응용프로그램의 최대 성능지표를 만족시키는 최소 주파수를 결정하여 처리 장치에 대한 목표 주파수를 산출한다. 동적 주파수 조절 장치는 상기 최대 성능지표를 기반으로 목표 성능지표 범위를 설정한다. 동적 주파수 조절 장치는 상기 목표 성능지표 범위 및 상기 목표 주파수를 기반으로, 응용프로그램의 실행 중에 실시간 산출되는 성능지표에 적응적으로 처리 장치의 동작 주파수를 조절한다.The dynamic frequency adjustment apparatus according to an embodiment of the present invention determines a minimum frequency that satisfies a maximum performance index of an application program among frequencies applicable to a processing apparatus that executes an application program, and calculates a target frequency for the processing apparatus. The dynamic frequency control unit sets a target performance index range based on the maximum performance index. The dynamic frequency control device adjusts the operating frequency of the processing device adaptively to a performance index that is calculated in real time during execution of an application program based on the target performance index range and the target frequency.

본 발명의 실시예에 의하면, 응용프로그램의 실행 전에 정적 분석을 수행할 필요가 없으며, 실시간으로 성능 요구사항을 만족하면서 동적 전압 주파수 스케일링(DVFS; Dynamic Voltage Frequency Scaling)를 수행하여, 높은 전력 이득을 얻을 수 있다. 또한, 이종 컴퓨터 시스템의 처리부들(예를 들어, CPU와 GPU)에 대해 순차적으로 목표 주파수들을 결정하여, 이종 컴퓨터 시스템의 전력 이득을 높일 수 있다.According to the embodiment of the present invention, there is no need to perform a static analysis before execution of an application program, dynamic voltage frequency scaling (DVFS) is performed while satisfying performance requirements in real time, Can be obtained. In addition, the target frequencies may be sequentially determined for the processing units (for example, the CPU and the GPU) of the heterogeneous computer system to increase the power gain of the heterogeneous computer system.

일 실시예에서, 응용프로그램이 3D 모바일 게임인 경우, 성능지표는 예시적으로 프레임율(FPS; Frame Per Second)을 포함할 수 있다. 다만, 본 발명은 게임 이외의 다양한 응용프로그램에 적용될 수 있으며, 적용되는 응용프로그램이나 시스템에 따라 프레임율 이외의 다른 성능지표가 사용될 수도 있다.In one embodiment, if the application is a 3D mobile game, the performance indicator may illustratively include a frame rate (FPS). However, the present invention can be applied to various application programs other than games, and other performance indicators other than the frame rate may be used depending on an application program or a system to which the present invention is applied.

예컨대, 본 발명이 영상 인식을 처리해주는 임베디드 시스템에 적용되는 경우, 시간당 인식 이미지 수에 관한 성능지표가 사용될 수 있고, 머신러닝을 수행하는 시스템에 적용되는 경우, 시간당 연산수에 관한 성능지표가 사용될 수도 있다. 이하에서 성능지표로서 프레임율(FPS)이 사용되는 실시예를 통해 본 발명을 설명하나, 본 발명이 적용되는 응용프로그램과, 성능지표의 종류는 이러한 예시들로 한정되지 않음을 미리 밝혀둔다.For example, when the present invention is applied to an embedded system that processes image recognition, a performance index related to the number of recognized images per hour can be used, and when applied to a system that performs machine learning, It is possible. Hereinafter, the present invention will be described with reference to an embodiment in which a frame rate (FPS) is used as a performance index. However, the application program to which the present invention is applied and the kind of the performance index are not limited to these examples.

도 1은 본 발명의 실시예에 따른 동적 주파수 조절 장치를 포함하는 컴퓨터 시스템의 구성도이다. 도 1의 컴퓨터 시스템은 본 실시예가 적용되는 하나의 예로서 제시되는 것이다. 도 1을 참조하면, 컴퓨터 시스템은 고사양의 응용프로그램을 실시간 처리하기 위하여 이종 멀티 프로세싱(HMP; Heterogeneous Multi Processing) 기술로 제공될 수 있다.1 is a block diagram of a computer system including a dynamic frequency adjusting apparatus according to an embodiment of the present invention. The computer system of FIG. 1 is presented as an example to which this embodiment is applied. Referring to FIG. 1, a computer system may be provided with heterogeneous multi-processing (HMP) technology for real-time processing of high-performance application programs.

응용프로그램의 실행을 위하여 컴퓨터 시스템에는 그래픽처리장치(GPU; Graphic Processing Unit)(300)와 중앙처리장치(CPU; Central Processing Unit)(400a,400b)로 이루어지는 처리 장치가 구비되어 있다. 다양한 작업부하 특성을 가지는 게임들을 지원하기 위해서, CPU 클러스터들과 GPU의 전력을 함께 관리할 필요가 있다.A computer system includes a processing unit including a graphic processing unit (GPU) 300 and a central processing unit (CPU) 400a and 400b for executing an application program. To support games with varying workload characteristics, it is necessary to manage the power of CPU clusters and GPUs together.

종래의 전력 관리 기법은 오프라인 회귀분석(off-line regression analysis)을 통해 CPU 사용율과 FPS 성능의 관계를 도출하는 것이나, 이종 멀티 프로세싱 컴퓨터 시스템의 경우, CPU 클러스터들과 GPU가 모두 사용되는 경우, 오프라인 회귀분석을 통해 CPU 사용율과 FPS 성능의 관계를 도출하기 쉽지 않다.Conventional power management techniques derive the relationship between CPU utilization and FPS performance through off-line regression analysis, but in the case of heterogeneous multiprocessing computer systems, when both CPU clusters and GPUs are used, It is not easy to derive the relationship between CPU utilization and FPS performance through regression analysis.

이에 본 발명은 응용프로그램의 실행 전에 정적 회귀 분석을 하지 않고도 동적 전압 주파수 스케일링을 수행할 수 있으며, 다수의 CPU 클러스터들과 GPU의 클록 주파수들(동작 주파수들)을 효율적으로 관리하여 전력 이득을 높일 수 있는 새로운 기술을 제시한다.Therefore, the present invention can perform dynamic voltage frequency scaling without performing a static regression analysis before execution of an application program, and efficiently manage the clock frequencies (operating frequencies) of a plurality of CPU clusters and the GPU to increase the power gain It presents a new technology that can be.

동적 주파수 조절 장치(100)는 처리부들(CPU, GPU)의 사용율(utilization)과 FPS 정보를 기반으로 처리부들(CPU, GPU)의 동작 주파수들을 조절한다. 이를 위하여, 동적 주파수 조절 장치(100)는 상기 사용율과 FPS 정보를 주기적으로 실시간 획득하도록 구성된다.The dynamic frequency adjustment apparatus 100 adjusts the operating frequencies of the CPUs and the GPU based on the utilization of the CPUs and the GPU and the FPS information. To this end, the dynamic frequency adjustment apparatus 100 is configured to periodically obtain the usage rate and the FPS information in real time.

일 실시예에서, 동적 주파수 조절 장치(100)는 정보 제공부(200)로부터 성능지표(FPS)를 실시간으로 제공받을 수 있다. 정보 제공부(200)는 안드로이드의 SurfaceFlinger 프로세스로 제공될 수 있다. 또한, 동적 주파수 조절 장치(100)는 GPU 드라이버(310)와 CPU 드라이버(410)로부터 GPU 사용율 및 CPU 사용율을 실시간으로 제공받을 수 있다.In one embodiment, the dynamic frequency adjustment apparatus 100 may receive a performance indicator (FPS) in real time from the information providing unit 200. The information providing unit 200 can be provided in the SurfaceFlinger process of the Android. In addition, the dynamic frequency adjustment apparatus 100 can receive the GPU usage rate and the CPU usage rate from the GPU driver 310 and the CPU driver 410 in real time.

CPU(400a,400b)와 GPU(300)의 전력 관리는 두 개의 CPU 관리부(420a,420b)와 하나의 GPU 관리부(320)에 의해 독립적으로 수행될 수 있다. CPU(400a,400b)와 GPU(300)의 전력 관리를 위해, 동적 주파수 조절 장치(100)는 커널 메모리 공간(Kernel Space)에 존재하는 CPU 드라이버(410), CPU 관리부(420a,420b), GPU 드라이버(310) 및 GPU 관리부(320)와 sysfs 인터페이스를 통해 연결될 수 있다.Power management of the CPUs 400a and 400b and the GPU 300 can be independently performed by the two CPU management units 420a and 420b and one GPU management unit 320. [ The dynamic frequency adjustment apparatus 100 includes a CPU driver 410, CPU management units 420a and 420b, and a GPU 300 that are present in a kernel memory space for power management of the CPUs 400a and 400b and the GPU 300. [ Driver 310 and the GPU management unit 320 via the sysfs interface.

동적 주파수 조절 장치(100)는 처리부들(CPU, GPU)의 사용율과 실시간 FPS 변동에 기반하여, 응용프로그램의 실행 중에 각 처리부(CPU, GPU)의 동작 주파수를 결정한다. 도 2는 본 발명의 실시예에 따른 동적 주파수 조절 장치의 구성도이다. 도 1 및 도 2를 참조하면, 동적 주파수 조절 장치(100)는 학습부(120), 추적부(140) 및 확인부(160)를 포함하여 구성될 수 있다.The dynamic frequency adjustment apparatus 100 determines the operating frequency of each processing unit (CPU, GPU) during the execution of the application program based on the utilization rate of the processing units (CPU, GPU) and the real time FPS fluctuation. 2 is a configuration diagram of a dynamic frequency adjusting apparatus according to an embodiment of the present invention. 1 and 2, the dynamic frequency adjusting apparatus 100 may include a learning unit 120, a tracking unit 140, and an identifying unit 160. [

학습부(120)는 처리 장치(CPU, GPU)에 적용 가능한 주파수들 중 응용프로그램의 최대 성능지표(예를 들어, 최대로 얻을 수 있는 FPS)를 만족시키는 최소 주파수를 목표 주파수로 산출하고, 최대 성능지표를 기반으로 목표 성능지표 범위의 상한값과 하한값을 설정한다.The learning unit 120 calculates a minimum frequency that satisfies a maximum performance index (e.g., maximum achievable FPS) of the application program among the frequencies applicable to the processing unit (CPU, GPU) as a target frequency, Set upper and lower limits of target performance index range based on performance index.

일 예로, 처리 장치(CPU, GPU) 중 제1 CPU(400a)가 A7 CPU로 제공되는 경우, 제1 CPU(400a)에 적용 가능한 주파수들은 1000, 1100, 1200, 1300, 1400 MHz이다. 다른 예로, 제2 CPU(400b)가 A15 CPU로 제공되는 경우, 제2 CPU(400b)에 적용 가능한 주파수들은 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000 MHz이다. GPU(300)가 MALI T628 GPU로 제공되는 경우, GPU(300)에 적용 가능한 주파수들은 177, 266, 350, 420, 480, 543 MHz 이다.For example, when the first CPU 400a of the processing units (CPU, GPU) is provided to the A7 CPU, the frequencies applicable to the first CPU 400a are 1000, 1100, 1200, 1300, and 1400 MHz. As another example, when the second CPU 400b is provided to the A15 CPU, the frequencies applicable to the second CPU 400b are 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900 and 2000 MHz. When the GPU 300 is provided as a MALI T628 GPU, the frequencies applicable to the GPU 300 are 177, 266, 350, 420, 480 and 543 MHz.

상기 제1 CPU(400a)를 예로 들면, 1200, 1300, 1400 MHz 동작 주파수에서 최대 FPS를 얻을 수 있고, 1000, 1100 MHz 동작 주파수에서 FPS가 최대 FPS 보다 감소되는 경우, 최대 성능지표(최대 FPS)를 만족시키는 최소 주파수는 1200 MHz가 되고, 이 주파수가 제1 CPU(400a)에 대한 목표 주파수로 산출된다.For example, when the first CPU 400a is used, a maximum FPS can be obtained at an operating frequency of 1200, 1300, or 1400 MHz. When the FPS is reduced below the maximum FPS at a frequency of 1000 or 1100 MHz, Is 1200 MHz, and this frequency is calculated as a target frequency for the first CPU 400a.

일 실시예로, 목표 성능지표 범위는 상기 최대 성능지표에 미리 설정된 상한과 하한 여유 범위를 적용하여 결정될 수 있다. 예를 들어, 최대 FPS가 30이고, 상한과 하한 여유 범위가 ±2.5인 경우, 목표 성능지표 범위는 27.5 ~ 32.5 (30±2.5)가 되고, 목표 성능지표 범위의 상한값은 32.5, 하한값은 27.5가 된다.In one embodiment, the target performance index range may be determined by applying an upper limit and a lower limit margin set in advance to the maximum performance index. For example, when the maximum FPS is 30 and the upper and lower margin ranges are ± 2.5, the target performance index range is 27.5 to 32.5 (30 ± 2.5), and the upper limit value of the target performance index range is 32.5 and the lower limit value is 27.5 do.

추적부(140)는 실시간으로 측정된 성능지표(FPS)가 목표 성능지표 범위에서 벗어나는지 감시하여, 목표 성능지표 범위의 하한값보다 작은 것으로 판단되면 처리 장치(CPU, GPU)의 동작 주파수를 증가시킨 후 확인부(160)에 원인 판별을 요청하고, 목표 성능지표 범위의 상한값보다 큰 것으로 판단되면 학습부(120)에 목표 성능지표 범위를 재설정하도록 요청한다. 또한, 추적부(140)는 FPS가 목표 FPS 범위에 속하는 동시에 처리 장치(CPU, GPU)의 사용율이 임계값보다 작은 경우, 동작 주파수를 감소시켜 사용율이 일정 수준 이상으로 확보될 수 있도록 한다.The tracking unit 140 monitors whether the FPS measured in real time is out of the target performance index range and increases the operating frequency of the CPU or GPU if it is determined that the FPS is less than the lower limit of the target performance index range And requests the learning unit 120 to reset the target performance index range when it is determined that the target performance index range is larger than the upper limit value of the target performance index range. In addition, the tracking unit 140 may reduce the operating frequency so that the usage rate can be secured to a certain level or higher when the usage rate of the processing unit (CPU, GPU) is less than the threshold while the FPS belongs to the target FPS range.

확인부(160)는 추적부(140)에 의해 처리 장치(CPU, GPU)의 동작 주파수가 증가된 후 응용프로그램에 대해 산출되는 현재 성능지표(현재 FPS)를 목표 성능지표 범위 및 이전 FPS와 비교하여, FPS의 감소 원인이 작업부하의 점진적 변동 때문인지 아니면 응용프로그램의 급작스런 변동 때문인지를 판단한다. 학습부(120), 추적부(140) 및 확인부(160)의 구체적인 동작 및 기능은 이후 도 4 내지 도 8을 참조하여 보다 자세히 설명하기로 한다.The confirmation unit 160 compares the current performance indicator (current FPS) calculated for the application program after the operation frequency of the processing unit (CPU, GPU) is increased by the tracking unit 140 with the target performance indicator range and the previous FPS To determine whether the cause of the decrease in FPS is due to a gradual change in the workload or a sudden change in the application program. The specific operation and function of the learning unit 120, the tracking unit 140, and the confirmation unit 160 will be described later in detail with reference to FIG. 4 to FIG.

도 3은 본 발명의 실시예에 따른 동적 주파수 조절 방법의 전체 흐름도이다. 도 3을 참조하면, 예를 들어, 3D 모바일 게임 등의 응용프로그램이 실행되면, 먼저 초기화 단계(S20)에서 각 CPU 코어 및 GPU의 DVFS(Dynamic Voltage Frequency Scaling) 정책이 사용자 메모리 공간(user space)에 설정되고, 지원되는 주파수 값들이 포함된 각 코어의 DVFS 테이블을 읽어들임으로써 주파수 테이블이 생성된다. 초기화 단계(S20) 후, 동적 주파수 조절을 위한 정보들, 예를 들어 처리부들(CPU, GPU)의 사용율(utilization)과 FPS 정보를 읽어들이는 업데이트 단계(S40)가 수행된다.3 is an overall flowchart of a dynamic frequency adjustment method according to an embodiment of the present invention. Referring to FIG. 3, when an application program such as a 3D mobile game is executed, a DVFS (Dynamic Voltage Frequency Scaling) policy of each CPU core and a GPU is initialized to a user memory space in an initialization step S20, And the frequency table is created by reading the DVFS table of each core including the supported frequency values. After the initialization step S20, an update step S40 for reading information for dynamic frequency adjustment, for example, utilization of the CPUs and GPUs and FPS information is performed.

다음으로, 응용프로그램의 로딩(Loading) 구간을 감지한다(S60). 모바일 게임과 같은 응용프로그램은 로딩 상태를 포함하고 있다. 로딩 상태는 FPS 값의 변동여부를 확인하여 검출될 수 있다. FPS 값은 SurfaceFlinger 프로세스가 정보를 업데이트할 때마다 변하지만, 로딩 상태에서 프레임은 잠시 동안 업데이트되지 않으며 이때 SurfaceFlinger 프로세스는 호출되지 않는다.Next, a loading period of the application program is sensed (S60). Applications such as mobile games include loading status. The loading state can be detected by checking whether the FPS value has changed. The FPS value changes each time the SurfaceFlinger process updates information, but in the loading state, the frame is not updated for a while, and the SurfaceFlinger process is not called.

따라서, 만약 FPS 값이 일정 시간 변화하지 않으면, 로딩 상태인 것으로 판단할 수 있다. 로딩 상태에서, CPU는 게임을 로딩하며, GPU는 아이들 상태가 된다. 따라서, 로딩 상태가 검출되면, 빠른 로딩을 위하여, CPU의 클록 주파수는 최대값으로 설정되고, GPU의 클록 주파수는 최소값으로 설정될 수 있다(S80).Therefore, if the FPS value does not change for a predetermined time, it can be determined that the FPS value is in the loading state. In the loading state, the CPU loads the game and the GPU becomes idle. Thus, if a loading state is detected, for fast loading, the clock frequency of the CPU may be set to a maximum value and the clock frequency of the GPU may be set to the minimum value (S80).

만약, 단계 S60에서 로딩이 감지되지 않는 경우, 동적 주파수 조절 단계(S100)가 수행되고, CPU들과 GPU의 클록 주파수가 사용율 및 FPS에 따라 적응적으로 결정된다. 클록 주파수가 업데이트된 후(S180), 설정시간(예를 들어, 100ms)이 경과될 때마다 상기 과정들(S40 내지 S180)이 반복된다.If loading is not detected in step S60, a dynamic frequency adjustment step (SlOO) is performed, and the clock frequencies of the CPUs and the GPU are adaptively determined according to the usage rate and the FPS. After the clock frequency is updated (S180), the above processes (S40 to S180) are repeated each time the set time (for example, 100 ms) elapses.

도 4는 도 3의 단계 S100의 상태도이다. 본 실시예에 따른 동적 주파수 조절 방법의 상태도는 학습 상태(learning state)(S120)와, 추적 상태(tracking state)(S140) 및 확인 상태(checking state)(S160)의 세가지 상태를 포함한다.4 is a state diagram of step S100 of FIG. The state diagram of the dynamic frequency adjustment method according to the present embodiment includes three states: a learning state S120, a tracking state S140, and a checking state S160.

초기 목표 FPS 범위와 처리부들(CPU, GPU)의 목표 주파수를 산출하기 위해, 먼저 학습 상태(S120)로 진입한다. 학습 상태(S120)에서는 최대로 얻을 수 있는 FPS를 기반으로 목표 FPS 범위가 결정된다. 응용프로그램 실행 초기의 최대 FPS는 모든 동작하는 처리부들에 최대 주파수가 설정된 상태에서 얻을 수 있다.In order to calculate the initial target FPS range and the target frequency of the processing units (CPU, GPU), the learning state S120 is first entered. In the learning state (S120), the target FPS range is determined based on the maximum FPS that can be obtained. The maximum FPS at the beginning of application execution can be obtained when the maximum frequency is set in all the operating units.

학습 상태(S120)의 주목적은 신규 목표 FPS를 찾고, 목표 FPS를 만족하는 처리부들의 최소 주파수들을 찾아 목표 주파수로 설정함으로써, 전력 소모를 최소화하는 것이다. 목표 FPS 범위와 모든 처리부들에 대해 목표 주파수가 결정되면, 학습 상태(S120)에서 추적 상태(S140)로 전환된다.The main purpose of the learning state (S120) is to minimize the power consumption by finding a new target FPS and setting the target frequencies to the minimum frequencies of the processing units satisfying the target FPS. When the target frequency is determined for the target FPS range and all the processing units, the learning state (S120) is switched to the tracking state (S140).

추적 상태(S140)에서는 FPS 성능을 목표 FPS 범위 내에 유지하면서, 장면 복잡도의 단기적인 변동을 견딜 수 있도록, 클록 주파수가 적응적으로 조절된다. 이를 위해, 실시간으로 산출되는 FPS가 목표 FPS 범위를 만족하는지 여부가 판단된다.In the tracking state (S140), the clock frequency is adaptively adjusted so as to withstand short-term variations in scene complexity, while keeping the FPS performance within the target FPS range. To this end, it is determined whether the FPS calculated in real time satisfies the target FPS range.

만약 추적 상태(S140)에서 FPS 성능이 목표 FPS 범위에서 벗어나면, FPS 위배가 검출된다. 추적 상태(S140)에서, 측정된 FPS가 목표 FPS 범위의 하한값보다 작으면, FPS 감소 원인을 판별하기 위해 확인 상태(S160)로 전환된다. 추적 상태(S140)에서, FPS가 목표 FPS 범위의 상한값보다 크면, 목표 FPS 범위의 재결정을 위해 학습 상태(S120)로 되돌아간다.If the FPS performance is out of the target FPS range in the tracking state (S140), the FPS violation is detected. If the measured FPS is less than the lower limit of the target FPS range in the tracking state (S140), it switches to the confirmation state (S160) to determine the cause of FPS reduction. In the tracking state S140, if the FPS is larger than the upper limit value of the target FPS range, the process returns to the learning state S120 for redetermining the target FPS range.

확인 상태(S160)에서는 FPS 변동(감소)의 원인이 조사된다. 만약 FPS 감소가 다른 게임의 실행 또는 새 장면으로의 이동과 같은 급작스런 장면 전환 등에 기인한 것인 경우, 현재의 목표 FPS가 더 이상 최상의 성능을 보장하지 않으므로, 신규 목표 FPS 범위를 재설정하기 위해 학습 상태(S120)로 전환한다.In the confirmation state (S160), the cause of FPS fluctuation (decrease) is investigated. If the FPS reduction is due to sudden scene changes, such as running another game or moving to a new scene, the current target FPS no longer guarantees the best performance, so the learning state (S120).

이와 달리, FPS 감소의 원인이 처리 장치(CPU, GPU)의 점진적인 작업부하 변동 때문인 것으로 판별되면, 단지 주파수를 증가시킴으로써, FPS 요구를 현재의 목표 FPS 범위에 맞출 수 있으므로, 이때에는 확인 상태(S160)에서 추적 상태(S140)로 되돌아가게 된다.Alternatively, if it is determined that the cause of the FPS reduction is due to the gradual workload fluctuation of the processing unit (CPU, GPU), the FPS request can be adjusted to the current target FPS range only by increasing the frequency, ) To the tracking state (S140).

학습 상태(S120), 추적 상태(S140) 및 확인 상태(S160)에서 응용 프로그램의 실행 중에 산출되는 FPS 값을 기반으로 성능지표를 산출하는 예에 대해 먼저 설명한다. 프레임의 장면 복잡도와 시스템 상태 등에 의존하여 FPS 값은 동적으로 변화하므로, 우수한 성능을 확보하기 위해서는 응용프로그램의 실행 중에 FPS 값의 변동 이력을 기반으로 일정 주기마다 FPS 평균값을 산출하고, FPS 평균값을 성능지표로 하여 동적 주파수 조절에 활용하는 것이 바람직하다.An example of calculating the performance index based on the FPS value calculated during execution of the application program in the learning state (S120), the tracking state (S140), and the confirmation state (S160) will be described first. Since the FPS value changes dynamically depending on the scene complexity and the system state of the frame, in order to secure the excellent performance, the FPS average value is calculated at regular intervals based on the history of the FPS value change during the execution of the application program, It is preferable to use it as an index for dynamic frequency control.

FPS는 예를 들어, 프레임을 업데이트하는 SurfaceFlinger 프로세스의 두 개의 호출 사이의 시간 구간의 역수를 취함으로써 측정될 수 있다. 그러나, 만약 FPS를 모든 프레임 업데이트 시점마다 측정할 경우, FPS는 장면 변화와 SurfaceFlinger 프로세스의 불규칙 호출 지연과 같은 다양한 이유로 인해 과도하게 변동하게 된다.The FPS may be, for example, a SurfaceFlinger Can be measured by taking the inverse of the time interval between two calls of the process. However, if the FPS is measured at every frame update time, the FPS will fluctuate extensively for various reasons such as scene changes and irregular call delays in the SurfaceFlinger process.

신뢰할 수 있는 안정적인 FPS를 얻기 위해, SurfaceFlinger 는 모든 호출시에 FPS 정보를 업데이트하지 않고, 간헐적으로 FPS 정보를 업데이트하도록 제공될 수 있다. FPS가 업데이트된 후, SurfaceFlinger 프로세스는 기결정된 시간(예를 들어, 100ms) 동안 프레임 업데이트 수를 파악하고, 마지막 업데이트 이후 일정 시간이 경과할 때까지 기다린다.To get a reliable and reliable FPS, SurfaceFlinger May be provided to update the FPS information intermittently without updating the FPS information at every call. After the FPS is updated, SurfaceFlinger The process grasps the number of frame updates for a predetermined time (e.g., 100 ms) and waits until a certain time has elapsed since the last update.

FPS의 업데이트 주기에 따른 안정성과 적응 속도는 서로 트레이드 오프(trade-off) 관계가 있다. 만약 업데이트 간격이 너무 짧으면, FPS의 잦은 변동으로 인해 적응에 어려움이 따른다. 반대로, 업데이트 간격이 길면, 적응을 과도하게 지연시켜 빠른 장면 복잡도의 변화를 따라가지 못하게 된다. FPS는 예를 들어, 아래 수식 1에 따라 산출될 수 있다.There is a trade-off relationship between the stability and the speed of adaptation according to the update period of the FPS. If the update interval is too short, adaptation will be difficult due to frequent fluctuations in FPS. On the other hand, if the update interval is long, the adaptation is delayed excessively and the fast scene complexity can not follow the change. The FPS can be calculated, for example, according to Equation 1 below.

[수식 1][Equation 1]

Figure pat00001
Figure pat00001

수식 1에서, tnowSurfaceFlinger 프로세스의 현재 호출 시간, tprevSurfaceFlinger 프로세스의 이전 호출 시간, Nnow 는 현재 호출 시간과 이전 호출 시간 사이의 SurfaceFlinger 프로세스의 호출 수(프레임 업데이트 수)이다. SurfaceFlinger 프로세스는 산출된 FPSe를 리눅스(Linux)의 sysfs 가상 파일 내에 있는 fps _ info 파일에 저장할 수 있다. 동적 주파수 조절 장치는 fps _ info 파일을 읽어들여, 최근 업데이트된 FPSe 정보를 확인할 수 있다.In Equation 1, t now is the SurfaceFlinger The current call time of the process t prev is the previous call time of the SurfaceFlinger process, N now is the SurfaceFlinger between the current call time and the previous call time The number of calls in the process (number of frame updates). SurfaceFlinger process can save the file in the calculated fps _ info FPS e sysfs virtual file in Linux (Linux). Dynamic frequency control device reads fps _ info file, you can check the latest updates FPS e information.

SurfaceFlinger 프로세스에 의해 기록된 최근 FPSe 값을 읽어들인 후 클록 주파수를 업데이트 하는데 시간 지연이 생기며, 그동안 FPSe 값도 변화한다. 따라서 fps_info 파일로부터 FPSe 값을 읽을 때, SurfaceFlinger 프로세스에 의해 기록된 이전 FPSe 값이 읽히게 될 수 있다. 또한 주파수 조절의 효과는 지연 시간 후에 나타나고, 동적 주파수 조절 장치와 SurfaceFlinger 프로세스는 동기화 없이 독립적으로 동작하므로, 시간 지연은 동적으로 변화하게 된다. 이러한 문제를 해소하기 위해, 예시적으로 5개의 FPSe 샘플들을 수집한 후, 최댓값 및 최솟값을 제외한 3개의 FPSe 값들을 평균하여, 아래의 수식 2에 따라 평균 FPSavg 값을 산출할 수 있다. SurfaceFlinger There is a time delay in updating the clock frequency after reading the last FPS e value recorded by the process, and the FPS e value has also changed in the meantime. Therefore, when reading the FPS e value from the fps_info file, SurfaceFlinger The previous FPS e value recorded by the process may be read. In addition, the effect of the frequency adjustment appears after the delay time, and the dynamic frequency adjustment device and SurfaceFlinger Processes operate independently without synchronization, so the time delay changes dynamically. To solve this problem, after collecting five FPS e samples as an example, the average FPS avg value can be calculated according to the following Equation 2 by averaging the three FPS e values excluding the maximum value and the minimum value.

[수식 2][Equation 2]

Figure pat00002
Figure pat00002

수식 2에서, FPSsum 은 5개의 FPSe 샘플들의 합이고, FPSmax, FPSmin은 각각 5개의 FPSe 샘플들 중 최대 FPSe, 최소 FPSe 값이다.In Equation 2, the FPS sum is the sum of 5 FPS e samples, and FPS max and FPS min are the maximum FPS e and the minimum FPS e value, respectively, of 5 FPS e samples.

도 5는 프레임 생성시점, FPS 업데이트 시점, 주파수 조절 시점을 보여주는 시간 다이어그램이다. 도 5를 참조하면, 설정시간(예를 들어, 100ms)마다 FPSe 값이 업데이트되며, 5개의 FPSe 값이 산출되는 설정주기(예를 들어, 500ms)마다 주파수가 조절될 수 있다. 도 5에서, 주파수 조절 후의 최초 FPSe 값은 다음 FPSe 값보다 작아 평균 FPSavg 산출에 포함되지 않을 것이다.5 is a time diagram showing a frame generation time point, an FPS update time point, and a frequency adjustment time point. Referring to FIG. 5, the FPS e value is updated every set time (for example, 100 ms), and the frequency can be adjusted every set period (for example, 500 ms) in which five FPS e values are calculated. In Figure 5, the initial FPS e value after the frequency adjustment will be less than the next FPS e value and will not be included in the average FPS avg calculation.

도 6은 도 4에 도시된 학습 상태(S120)를 구체화하여 보여주는 상태도이다. 도 2, 도 4 및 도 6을 참조하면, 학습 상태(S120)의 내부 상태도는 초기 상태(S122), GPU 상태(S124), CPU 상태(S126), 및 결정 상태(S128)의 네가지 상태로 이루어진다.FIG. 6 is a state diagram showing the learning state (S120) shown in FIG. 4 in detail. 2, 4 and 6, the internal state diagram of the learning state S120 includes four states of an initial state S122, a GPU state S124, a CPU state S126, and a decision state S128 .

초기 상태(S122)에서, 학습부(120)는 복수의 처리부(CPU, GPU)의 사용율을 기반으로 복수의 처리부(CPU, GPU)에 대하여 우선순위를 결정한다. 높은 사용율의 처리부가 클록 주파수를 감소시키는데 높은 우선순위를 갖는다.In the initial state S122, the learning unit 120 determines a priority order for a plurality of processing units (CPU, GPU) based on the usage rates of a plurality of processing units (CPU, GPU). The high utilization rate of processing has a high priority to reduce the clock frequency.

처리부들(CPU, GPU)에 대하여 우선순위가 결정되면, 우선순위에 따라 순차적으로 처리부들에 대해 최소 주파수들의 조합을 결정하여 목표 주파수들을 산출할 수 있다. 처리부들의 사용율에 따라, 초기 상태(S122)에서 GPU 상태(S124) 또는 CPU 상태(S126)로 이동한다.When the priority order is determined for the processing units (CPU, GPU), the target frequencies can be calculated by sequentially determining the combination of the minimum frequencies for the processing units according to the priority order. The state moves from the initial state S122 to the GPU state S124 or the CPU state S126 depending on the usage rates of the processing units.

만약, GPU가 CPU보다 높은 우선순위를 갖는 경우, 도 6의 실선 화살표로 도시된 바와 같이, 먼저 GPU 상태(S124)로 전환되어 GPU에 대한 최소 주파수를 결정하여 목표 주파수를 산출하고 목표 FPS 범위를 설정한 다음, CPU 상태(S126)로 전환되어 CPU에 대한 최소 주파수를 결정하여 목표 주파수를 산출하게 된다.If the GPU has a higher priority than the CPU, the GPU state (S124) is first switched to the GPU state (S124) as shown by the solid line arrow in Fig. 6 to determine the minimum frequency for the GPU to calculate the target frequency, The CPU state (S126) is set to determine the minimum frequency for the CPU, and the target frequency is calculated.

반대로, CPU가 GPU보다 높은 우선순위를 갖는 경우(CPU 사용율이 GPU 사용율보다 높은 경우), 도 6의 점선 화살표로 도시된 바와 같이, 먼저 CPU 상태(S126)로 전환되어 CPU에 대한 최소 주파수를 결정하여 목표 주파수를 산출하고 목표 FPS 범위를 설정한 다음, GPU 상태(S124)로 전환되어 GPU에 대한 최소 주파수를 결정하여 목표 주파수를 산출하게 된다.Conversely, when the CPU has a higher priority than the GPU (when the CPU usage rate is higher than the GPU usage rate), the CPU state is first switched to the CPU state S126 as shown by the dotted arrow in Fig. 6 to determine the minimum frequency for the CPU The target frequency is calculated, the target FPS range is set, and then the GPU state (S124) is determined to determine the minimum frequency for the GPU to calculate the target frequency.

GPU 상태(S124), CPU 상태(S126)에서 목표 FPS 범위, GPU와 CPU의 목표 주파수를 산출하는 방법을 보다 구체적으로 설명한다. 응용프로그램 실행 초기에, 최대로 얻을 수 있는 FPS는 모든 처리부들(CPU, GPU)의 클록 주파수들을 최댓값으로 설정한 상태에서 산출된다. 이때, 설정주기 내에 측정되는 FPS 값들의 평균값인 FPSavg 가 최대로 얻을 수 있는 FPS로 설정될 수 있다.A method of calculating the target FPS range and the target frequency of the GPU and the CPU in the GPU state (S124), the CPU state (S126) will be described in more detail. At the beginning of application execution, the maximum FPS that can be obtained is calculated with the clock frequencies of all processors (CPU, GPU) set to the maximum value. At this time, FPS avg, which is the average value of the FPS values measured within the set period, can be set to the maximum FPS.

FPSavg 변동을 보상하기 위해, FPSavg 변동에 대한 허용 범위가 적용되어 목표 FPS 범위가 설정될 수 있다. 그러고 나서, 전력 소모를 최소화하기 위하여, FPSavg 가 범위 내에 유지되는 한도 내에서, CPU와 GPU의 클록 주파수를 감소시키고, FPSavg 범위가 유지되는 최소 주파수를 목표 주파수로 결정한다.In order to compensate for variations avg FPS, the allowable range for the FPS avg change is applied a target FPS range can be set. Then, in order to minimize power consumption, the FPS avg is the extent kept in the range, reducing the clock frequency of the CPU and the GPU and, determining a minimum frequency at which the FPS avg range maintained at the target frequency.

CPU 및 GPU에 대한 목표 주파수 범위가 결정되면, 결정 상태(S128)로 전환된다. 학습 과정에서, 게임의 작업부하 또는 장면 복잡도가 변화될 수 있으므로, 결정 상태(S128)에서 최종적으로 현재 FPS가 목표 FPS 범위를 여전히 만족하는지를 확인한 후, 만족하는 경우 처리부들(CPU, GPU)의 동작 주파수를 조절하기 위해 추적 상태(S140)로 전환된다. 만약, 결정 상태(S128)에서 현재의 FPS 상태가 목표 FPS 범위를 만족하지 않는 경우, 학습 상태(S120)의 초기 상태(S122)로 이동하여 학습을 다시 시작한다.Once the target frequency range for the CPU and GPU is determined, it is switched to the determined state (S128). In the learning process, since the workload or the scene complexity of the game may change, it is confirmed in the determination state S128 that the current FPS still satisfies the target FPS range, and if it satisfies the operation of the processing units (CPU, GPU) It is switched to the tracking state (S140) in order to adjust the frequency. If the current FPS state does not satisfy the target FPS range in the determination state S128, the process moves to the initial state S122 of the learning state S120 and starts learning again.

도 7은 본 발명의 실시예에 따른 동적 주파수 조절 방법을 구성하는 추적 단계의 흐름도이다. 도 2 및 도 7을 참조하면, 추적 상태(S140)에서, FPS 위배가 검출되면, 처리부들의 목표 주파수들을 스케일링하여 목표 FPS 범위를 유지하도록 한다.7 is a flowchart of a tracking step constituting a dynamic frequency adjustment method according to an embodiment of the present invention. Referring to FIG. 2 and FIG. 7, in the tracking state (S140), when an FPS violation is detected, the target frequencies of the processing units are scaled to maintain the target FPS range.

일 실시예에서, 추적부(140)는 현재 FPSavg가 목표 FPS 범위의 하한값 "min(targetFPS)" 보다 작은지 확인한다(S141, S142). 현재 FPSavg가 목표 FPS 범위의 하한값보다 작은 경우, 추적부(140)는 현재 FPSavg와 최대 FPS 및 목표 주파수를 기반으로 동작 주파수를 증가시키고(S143), 현재 FPSavg 값과 클록 주파수들을 저장한 후, FPS 감소 원인 분석을 확인부(160)에 요청한다. 이후, 확인 상태(S160)에서 FPS 위배의 원인이 조사된다.In one embodiment, the tracking unit 140 determines whether the current FPS avg is smaller than the lower limit value " min (target FPS) " of the target FPS range (S141, S142). If the current FPS avg is smaller than the lower limit value of the target FPS range, the tracking unit 140 increases the operating frequency based on the current FPS avg , the maximum FPS and the target frequency (S143), stores the current FPS avg value and the clock frequencies The FPS reduction cause analysis unit 160 requests the confirmation unit 160 to analyze the cause of the FPS reduction. Thereafter, the cause of the FPS violation is checked in the confirmation state (S160).

일 실시예에서, 현재 FPS(현재 FPSavg)가 목표 FPS 범위의 하한값 "min(targetFPS)" 보다 작은 경우, CPU, GPU의 목표 주파수 Freq'c 및 Freq'g 는 아래의 수식 3, 수식 4에 따라 스케일 업(scaled up)될 수 있다.In one embodiment, if the current FPS (current FPS avg ) is smaller than the lower limit value " min (targetFPS) " of the target FPS range, the target frequencies Freq ' c and Freq' g of the CPU and GPU are expressed by Equation 3 and Equation 4 below. And can be scaled up accordingly.

[수식 3][Equation 3]

Figure pat00003
Figure pat00003

[수식 4][Equation 4]

Figure pat00004
Figure pat00004

- Freq'c, Freq'g : CPU 및 GPU의 목표 주파수- Freq ' c , Freq' g : Target frequency of CPU and GPU

- Freqc, Freqg : CPU 및 GPU의 현재 주파수- Freq c , Freq g : Current frequency of CPU and GPU

- FPStarget, FPScurrent : 목표 FPS 및 현재 FPS- FPS target , FPS current : Target FPS and current FPS

각 처리부에 허용되는 주파수들은 제한되어 있으므로, 목표 주파수는 통상적으로 허용 주파수들 중 하나와 일치하지 않는다. 이때에는 목표 주파수 이상의 허용 주파수들 중 가장 낮은 주파수가 목표 주파수로 결정된다. CPU, GPU의 클록 주파수가 스케일링된 후, FPSavg 는 다시 목표 FPS와 비교될 수 있다. 만약 CPU, GPU의 클록 주파수를 여전히 변화시킬 필요가 있는 경우, 주파수를 단계별로 적응적으로 변화시킨다.Since the frequencies allowed for each processing unit are limited, the target frequency typically does not match one of the allowable frequencies. At this time, the lowest frequency among the allowable frequencies above the target frequency is determined as the target frequency. After the clock frequency of the CPU, GPU is scaled, FPS avg can be compared with the target FPS again. If the clock frequency of the CPU or GPU still needs to be changed, the frequency is changed stepwise adaptively.

만약, FPS(현재 FPSavg)가 목표 FPS 범위의 상한값 "max(targetFPS)" 보다 큰 경우(S144), 현재의 목표 FPS 보다 큰 FPS 를 얻을 수 있는 것을 의미하므로, 처리부들에 허용 가능한 주파수들 중 최대의 주파수를 동작 주파수로 설정한 후(S145), 목표 FPS 범위의 재설정을 학습부(120)에 요청한다.If the FPS (present FPS avg ) is larger than the upper limit value " max (targetFPS) " of the target FPS range (S144), it means that the FPS larger than the current target FPS can be obtained. After setting the maximum frequency as the operation frequency (S145), the learning unit 120 is requested to reset the target FPS range.

현재 FPSavg가 목표 FPS 범위 내에 있는 경우에도, CPU 또는 GPU에 대한 현재 주파수들이 게임의 작업부하 변동으로 인해 최소가 아닐 수 있다. 이 가능성을 확인하기 위해, 추적 상태(S140)에서 처리부들의 사용율을 실시간 모니터링한다. 사용율은 처리 장치의 성능병목을 확인하기 위한 지표이다.Even if the current FPS avg is within the target FPS range, the current frequencies for the CPU or GPU may not be minimal due to variations in the workload of the game. In order to confirm this possibility, the usage rate of the processing units is monitored in real time in the tracking state (S140). The utilization rate is an index for identifying the performance bottleneck of the processing apparatus.

만약, 성능지표(FPS)가 목표 성능지표 범위를 만족하는 경우(S142, S144), 처리 장치의 사용율을 설정된 임계값(MIN_THRESHOLD)과 비교하여, 사용율이 임계값(MIN_THRESHOLD)보다 작은 경우, 동작 주파수를 감소시킬 수 있다(S147).If the performance index FPS satisfies the target performance index range (S142, S144), the usage rate of the processing device is compared with the threshold value MIN_THRESHOLD. If the usage rate is smaller than the threshold value MIN_THRESHOLD, (S147).

일 실시예에서, GPU 사용율 값은 GPU 드라이버에 의해 제공되며, sysfs 파일 시스템 내에 있는 utilization 파일로부터 읽어올 수 있다. CPU 사용율 정보는 시스템에 의해 제공되지 않으므로, cpufreq 커널 드라이버(kernel driver)가 CPU 코어의 사용율을 연산하도록 설정한다. 코어 사용율은 예를 들어, 각 코어의 전체 실행 시간을 소요 시간으로 나누는 방식 등으로 산출될 수 있다. FPS 정보와 유사하게, 사용율 정보도 주기적으로(예를 들어, 100ms 주기) 업데이트될 수 있다.In one embodiment, the GPU utilization value is provided by the GPU driver, and the sysfs The utilization in the file system You can read from the file. Since CPU utilization information is not provided by the system, cpufreq Set the kernel driver to calculate the CPU core usage rate. The core usage rate can be calculated, for example, by dividing the total execution time of each core by the required time. Similar to the FPS information, usage rate information may also be updated periodically (e.g., 100 ms period).

일 예로, Cortex -A7 클러스터의 경우, 네개의 코어의 사용율 값들을 더한 후 A7 클러스터의 배경 작업부하(background workload)에 상응하는 설정값(예를 들어, 50)으로 나누어 사용율을 산출할 수 있다. 이와 달리, Cortex-A15 cores 코어들의 경우, 사용율 측정 구간 동안 코어 이송(core migration)이 발생할 수 있으므로, 2개의 가장 큰 사용율 값을 더하여 사용율을 산출할 수 있다.For example, in the case of a Cortex- A7 cluster, the usage rates can be calculated by dividing the usage rates of the four cores by a set value corresponding to the background workload of the A7 cluster (for example, 50). On the other hand, for Cortex-A15 cores cores, since core migration can occur during the utilization ratio measurement period, the utilization ratio can be calculated by adding the two largest utilization values.

CPU와 GPU의 사용율을 임계값과 비교하여, 현재 게임의 스테이지가 CPU에 집중되는지 GPU에 집중되는지 알 수 있으며, 사용율을 기반으로, 클록 주파수가 조정된다. 처리부의 사용율이 낮으면, 코어가 성능병목이 아닌 것으로 가정하여, 처리부의 사용율이 다른 처리부와 균형되게 클록 주파수를 낮춘다(S147).You can compare the utilization of the CPU and GPU with the threshold value to see if the stage of the current game is concentrated on the CPU or GPU, and the clock frequency is adjusted based on the usage rate. If the usage rate of the processing unit is low, it is assumed that the core is not a performance bottleneck, and the utilization rate of the processing unit is lowered in a balanced manner with other processing units (S147).

임계값은 GPU 관리부가 사용하는 임계값 테이블로부터 도출될 수 있다. 본 실시예에 의하면, 장면 변화가 일어날 때 처리 장치가 요구되는 성능 이상으로 너무 높은 클록 주파수로 유지되지 않도록 하는 것을 돕는다. 이러한 스케일링 다운이 FPS 손실로 이어지는 경우, 처리 장치의 동작 주파수는 다음 DVFS 주기(예컨대, 500ms)에 곧바로 회복될 수 있으므로, 서비스 성능 품질에 큰 영향을 미치지 않는다.The threshold value may be derived from a threshold value table used by the GPU management unit. This embodiment helps to ensure that the processing unit is not kept at a clock frequency that is too high above the required performance when a scene change occurs. If this scaling down leads to FPS loss, the operating frequency of the processing unit can be recovered immediately to the next DVFS period (e.g., 500 ms), so that it does not significantly affect the service performance quality.

도 8은 본 발명의 실시예에 따른 동적 주파수 조절 방법을 구성하는 확인 단계의 흐름도이다. 도 2 및 도 8을 참조하면, 확인 상태(S160)의 주역할은 이전 추적 상태에서 행해진 DVFS 스케일링에 의해 FPS를 목표 FPS 범위 내에 회복할 수 있는지를 확인하는 것이다.FIG. 8 is a flow chart of an identifying step for configuring a dynamic frequency adjusting method according to an embodiment of the present invention. Referring to FIG. 2 and FIG. 8, the main function of the confirmation state S160 is to confirm whether the FPS can be recovered within the target FPS range by DVFS scaling performed in the previous tracking state.

일 실시예에서, 확인부(160)는 현재 성능지표(주파수 스케일링 후의 FPSavg 값)가 목표 성능지표 범위를 만족하는지 확인하여, 만족하지 않는 것으로 판단되는 경우 현재 성능지표를 동작 주파수가 증가되기 전에 산출된 과거 성능지표와 비교한다(S161, S162).In one embodiment, the verification unit 160 determines whether the current performance indicator (FPS avg value after frequency scaling) satisfies the target performance indicator range. If it is determined that the current performance indicator does not satisfy the target performance indicator range, And compares it with the calculated past performance index (S161, S162).

만약, 현재 성능지표가 과거 성능지표보다 감소되는 경우(S163), FPS 감소의 주원인이 처리 장치의 작업부하 증가로 인해 성능병목이 된 것 때문이므로, 현재 성능지표를 기반으로 동작 주파수를 조절한 후(S164), 학습부(120)에 목표 성능지표 범위의 재설정을 요청할 수 있다. 만약 CPU 또는 GPU가 병목인 경우, 주파수 증가는 FPS 성능을 증가시킬 것이다. 그러면, 상태는 추적 상태(S140)로 다시 변경되며, 주파수가 더 증가하면 FPS 역시 증가하게 될 것이다.If the current performance index is lower than the past performance index (S163), the main reason for the decrease in FPS is a performance bottleneck due to an increase in the workload of the processing apparatus. Therefore, the operating frequency is adjusted based on the current performance index (S164) and request the learning unit 120 to reset the target performance index range. If the CPU or GPU is the bottleneck, increasing the frequency will increase FPS performance. Then, the state is changed back to the tracking state (S140), and as the frequency further increases, the FPS will also increase.

이와 달리, 만약 그러한 스케일링이 FPS를 회복하는데 충분하지 않으면, 게인 작업부하가 급격하게 변화한 것으로 추정한다. 이 경우 예기치 못한 변동에 대처하기 위하여 새로운 목표 FPS를 설정할 필요가 있다. 이때, 학습 상태(S120)로 가기 전에, 주파수를 다시 스케일한다. 반드시 최대 주파수들이 아닌, 스케일된 주파수 값들을 시작으로 학습을 수행하면, 학습 상태(S120)에서 목표 성능지표 범위와 목표 주파수를 찾는데 필요한 학습 시간을 줄일 수 있다. 유휴 중인 처리부의 주파수를 증가시키는 것을 방지하기 위하여, 확인 상태(S160)에서의 주파수 스케일링은 사용율이 기준값(예를 들어, 50%) 미만인 처리부들에 적용되지 않도록 설정될 수 있다.Alternatively, if such scaling is not sufficient to recover the FPS, it is assumed that the gain workload has changed abruptly. In this case, it is necessary to set a new target FPS to cope with unexpected fluctuations. At this time, before going to the learning state (S120), the frequency is again scaled. If learning is performed starting from the scaled frequency values rather than the maximum frequencies, learning time required for finding the target performance index range and target frequency in the learning state (S120) can be reduced. To avoid increasing the frequency of the processing unit being idle, the frequency scaling in the confirmation state (S160) may be set not to apply to processing units whose utilization rate is less than a reference value (e.g., 50%).

도 9 내지 도 12는 본 발명의 실시예에 따른 동적 주파수 조절 방법의 성능(전력 이득, FPS)을 보여주는 그래프이다. 본 발명의 성능을 검증하기 위해 사용된 소프트웨어 및 하드웨어 사양은 아래의 표 1과 같다.9 to 12 are graphs showing performance (power gain, FPS) of the dynamic frequency adjustment method according to the embodiment of the present invention. The software and hardware specifications used to verify the performance of the present invention are shown in Table 1 below.

Figure pat00005
Figure pat00005

도 9는 6개의 응용프로그램(Edge of tommorrow, Asphalt8, Nova, Epic, Modern, Implosion)에 대해, 본 발명의 전력과 FPS(proposed W, proposed FPS), 비교예 1의 전력과 FPS(default W, default FPS)를 나타내는 그래프이고, 도 10 및 도 11은 각각 "Edge of tomorrow", "Nova" 게임에 대해, 본 발명과 비교예 1의 전력과 FPS 변동을 나타내는 그래프이다. 비교예 1은 A7 클러스터와 A15 클러스터의 관리부를 기본(default)으로 설정한 상태에서 응용프로그램을 실행하여 측정한 결과이다.FIG. 9 is a graph showing power and FPS (proposed W, proposed FPS) of the present invention, power of Comparative Example 1 and default power (FPS) of six application programs (Edge of tomorrow, Asphalt 8, Nova, Epic, Modern, Implosion) FIG. 10 and FIG. 11 are graphs showing power and FPS variation of the present invention and Comparative Example 1 for "Edge of tomorrow" and "Nova" games, respectively. Comparative Example 1 is a result of executing an application program with the management section of the A7 cluster and the A15 cluster being set as default.

도 9 내지 도 11의 도시와 같이, 본 발명의 실시예에 따른 동적 주파수 조절 방법의 경우, 6개 응용프로그램에 대해 동등한 수준의 FPS 성능을 가지는 동시에, 6개 중 4개의 응용프로그램(Edge of tommorrow, Nova, Modern, Implosion)에서 비교예 1보다 낮은 전력 소비를 보였으며, 2개의 응용프로그램(Asphalt8, Epic)에 대해서는 비교예 1과 동등한 수준의 전력 소비를 보였다.As shown in FIGS. 9 to 11, in the case of the dynamic frequency adjustment method according to the embodiment of the present invention, the FPS performance is equivalent to that of six application programs, and four out of six applications (Edge of tommorrow , Nova, Modern, Implosion), and power consumption was comparable to that of Comparative Example 1 for two application programs (Asphalt8, Epic).

도 12는 4개의 응용프로그램(Edge of tommorrow, Nova, Epic, Modern)에 대해, 본 발명의 전력과 FPS(proposed W, proposed FPS), 비교예 2의 전력과 FPS(predictive W, predictive FPS)를 나타내고 있다. 비교예 2는 < A. Pathania, A. E. Irimiea, A. Prakash, and T. Mitra, "Power-Performance Modelling of Mobile Gaming Workloads on Heterogeneous MPSoCs", in Proceedings of the 52Nd Annual Design Automation Conference, DAC '15, (New York, NY, USA), pp. 201:1-201:6, ACM, 2015. > 기술이 적용되었다. 도 12의 도시와 같이, 본 발명의 실시예에 따른 동적 주파수 조절 방법의 경우, FPS 성능을 유지하면서, 비교예 2와 동등하거나 낮은 수준의 전력 소비 특성을 나타낸다.FIG. 12 shows the power and FPS (proposed W, proposed FPS) of the present invention and the power and FPS (predictive W, predictive FPS) of Comparative Example 2 for four application programs (Edge of tomorrow, Nova, Epic, Respectively. Comparative Example 2 is described in <A. Pathania, AE Irimiea, A. Prakash, and T. Mitra, "Power-Performance Modeling of Mobile Gaming Workloads on Heterogeneous MPSoCs", in Proceedings of the 52Nd Annual Design Automation Conference , DAC '15, (New York, NY, USA), pp. 201: 1-201: 6, ACM, 2015. &gt;. As shown in FIG. 12, the dynamic frequency control method according to the embodiment of the present invention exhibits power consumption characteristics equivalent to or lower than that of the comparative example 2 while maintaining the FPS performance.

본 발명의 실시예에 따른 방법은 예를 들어 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등과 같은 휘발성 메모리, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM)과 같은 불휘발성 메모리, 플로피 디스크, 하드 디스크 또는 광학적 판독 매체 예를 들어 시디롬, 디브이디 등과 같은 형태의 저장매체일 수 있으나, 이에 제한되지는 않는다.The method according to an embodiment of the present invention can be realized in a general-purpose digital computer that can be created as a program that can be executed by a computer and operates the program using a computer-readable recording medium. The computer readable recording medium may be a volatile memory such as SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM), ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM) Non-volatile memory such as EEPROM (Electrically Erasable and Programmable ROM), flash memory device, Phase-change RAM (PRAM), Magnetic RAM (MRAM), Resistive RAM (RRAM), Ferroelectric RAM But are not limited to, optical storage media such as CD ROMs, DVDs, and the like.

이상의 실시예들은 본 발명의 이해를 돕기 위하여 제시된 것으로, 본 발명의 범위를 제한하지 않으며, 이로부터 다양한 변형 가능한 실시예들도 본 발명의 범위에 속하는 것임을 이해하여야 한다. 본 발명의 기술적 보호범위는 특허청구범위의 기술적 사상에 의해 정해져야 할 것이며, 본 발명의 기술적 보호범위는 특허청구범위의 문언적 기재 그 자체로 한정되는 것이 아니라 실질적으로는 기술적 가치가 균등한 범주의 발명에 대하여까지 미치는 것임을 이해하여야 한다.It is to be understood that the above-described embodiments are provided to facilitate understanding of the present invention, and do not limit the scope of the present invention, and it is to be understood that various modified embodiments are also within the scope of the present invention. It is to be understood that the technical scope of the present invention should be determined by the technical idea of the claims and the technical scope of protection of the present invention is not limited to the literary description of the claims, To the invention of the invention.

100: 동적 주파수 조절 장치
120: 학습부
140: 추적부
160: 확인부
200: 정보 제공부
300: GPU
400a,400b: CPU
100: Dynamic frequency adjusting device
120:
140:
160:
200: Information provision
300: GPU
400a, 400b: CPU

Claims (11)

응용프로그램을 실행시키는 처리 장치에 대해 허용 가능한 주파수들 중 상기 응용프로그램의 최대 성능지표를 만족시키는 최소 주파수를 결정하여 상기 처리 장치에 대한 목표 주파수를 산출하고, 상기 최대 성능지표를 기반으로 목표 성능지표 범위를 설정하며, 상기 응용프로그램의 실행 중에 산출되는 성능지표와 상기 목표 성능지표 범위 및 상기 목표 주파수를 기반으로 상기 처리 장치의 동작 주파수를 조절하는 동적 주파수 조절 장치.Determining a minimum frequency that meets a maximum performance index of the application program among allowable frequencies for a processing apparatus that executes the application program, calculating a target frequency for the processing apparatus, and calculating, based on the maximum performance index, And adjusts the operating frequency of the processing apparatus based on the performance index calculated during execution of the application program, the target performance index range, and the target frequency. 제1 항에 있어서,
상기 동적 주파수 조절 장치는,
상기 처리 장치에 대해 허용 가능한 주파수들 중 상기 최대 성능지표를 만족시키는 최소 주파수를 상기 목표 주파수로 산출하고, 상기 최대 성능지표를 기반으로 상기 목표 성능지표 범위의 상한값과 하한값을 결정하는 학습부;
상기 응용프로그램의 실행 중에 산출되는 성능지표가 상기 목표 성능지표 범위에서 벗어나는지 감시하여, 상기 처리 장치의 동작 주파수를 증가시키거나 상기 학습부에 상기 목표 성능지표 범위를 재결정하도록 요청하는 추적부; 및
상기 추적부에 의해 상기 처리 장치의 동작 주파수가 증가된 후 상기 응용프로그램에 대해 산출되는 현재 성능지표를 상기 목표 성능지표 범위와 비교하여 상기 성능지표의 감소 원인을 분석하는 확인부;를 포함하는 동적 주파수 조절 장치.
The method according to claim 1,
The dynamic frequency adjusting device comprises:
A learning unit that calculates a minimum frequency that satisfies the maximum performance index among the allowable frequencies for the processing apparatus at the target frequency and determines an upper limit value and a lower limit value of the target performance index range based on the maximum performance index;
A tracking unit for monitoring whether the performance index calculated during execution of the application program is out of the target performance index range and increasing the operation frequency of the processing unit or requesting the learning unit to re-determine the target performance index range; And
And a confirmation unit for comparing the current performance index calculated for the application program with the target performance indicator range after the operating frequency of the processing unit is increased by the tracking unit and analyzing the cause of the reduction of the performance indicator Frequency adjusting device.
제2 항에 있어서,
상기 처리 장치는 복수의 처리부를 포함하고,
상기 학습부는,
상기 복수의 처리부의 사용율을 기반으로 상기 복수의 처리부에 대하여 우선순위를 결정하고, 상기 우선순위에 따라 순차적으로 상기 복수의 처리부에 대해 상기 최대 성능지표를 만족하는 최소 주파수들의 조합을 결정하여 목표 주파수들을 산출하는 동적 주파수 조절 장치.
3. The method of claim 2,
Wherein the processing apparatus includes a plurality of processing sections,
Wherein,
Determining a priority order for the plurality of processors based on a usage rate of the plurality of processors, determining a combination of minimum frequencies satisfying the maximum performance index for the plurality of processors sequentially according to the priority, / RTI &gt;
제2 항 또는 제3 항에 있어서,
상기 추적부는,
상기 성능지표가 상기 목표 성능지표 범위의 하한값보다 작은 경우, 상기 성능지표와 상기 최대 성능지표 및 상기 목표 주파수를 기반으로 상기 동작 주파수를 증가시킨 후, 상기 확인부에 상기 성능지표의 감소 원인 분석을 요청하고,
상기 성능지표가 상기 목표 성능지표 범위의 상한값보다 큰 경우, 상기 주파수들 중 최대 주파수를 상기 동작 주파수로 설정한 후, 상기 학습부에 상기 목표 성능지표 범위 및 상기 목표 주파수의 재설정을 요청하며,
상기 성능지표가 상기 목표 성능지표 범위를 만족하는 경우, 상기 처리 장치의 사용율을 설정된 임계값과 비교하여, 상기 사용율이 상기 임계값보다 작은 경우, 상기 동작 주파수를 감소시키는 동적 주파수 조절 장치.
The method according to claim 2 or 3,
The tracking unit includes:
If the performance index is smaller than the lower limit value of the target performance index range, the operating frequency is increased based on the performance index, the maximum performance index and the target frequency, Request,
And sets the maximum frequency among the frequencies to the operating frequency when the performance index is larger than the upper limit value of the target performance index range and requests the learning unit to reset the target performance index range and the target frequency,
And compares the utilization rate of the processing apparatus with a preset threshold value when the performance index satisfies the target performance index range and decreases the operation frequency when the utilization rate is smaller than the threshold value.
제2 항 또는 제3 항에 있어서,
상기 확인부는,
상기 현재 성능지표가 상기 목표 성능지표 범위를 만족하지 않는 것으로 판단되는 경우, 상기 현재 성능지표를 상기 동작 주파수가 증가되기 전에 산출된 과거 성능지표와 비교하고,
상기 현재 성능지표가 상기 과거 성능지표보다 감소되는 것으로 판단되는 경우, 상기 현재 성능지표를 기반으로 상기 동작 주파수를 조절한 후, 상기 학습부에 상기 목표 성능지표 범위의 재설정을 요청하는 동적 주파수 조절 장치.
The method according to claim 2 or 3,
The checking unit,
Comparing the current performance indicator with a past performance indicator calculated before the operating frequency is increased when it is determined that the current performance indicator does not satisfy the target performance indicator range,
A dynamic frequency adjustment unit for adjusting the operating frequency based on the current performance index and requesting the learning unit to reset the target performance index range when it is determined that the current performance index is lower than the past performance index; .
응용프로그램을 실행시키는 처리 장치에 허용 가능한 주파수들 중 상기 응용프로그램의 최대 성능지표를 만족시키는 최소 주파수를 결정하여 상기 처리 장치에 대한 목표 주파수를 산출하고, 상기 최대 성능지표를 기반으로 목표 성능지표 범위를 설정하는 학습 단계; 및
상기 응용프로그램의 실행 중에 산출되는 성능지표와 상기 목표 성능지표 범위 및 상기 목표 주파수를 기반으로 상기 처리 장치의 동작 주파수를 조절하는 추적 단계;를 포함하는 동적 주파수 조절 방법.
Determining a minimum frequency that meets the maximum performance index of the application program among the allowable frequencies in the processing apparatus that executes the application program to calculate a target frequency for the processing apparatus, and based on the maximum performance index, ; And
And a tracking step of adjusting an operating frequency of the processing apparatus based on the performance index calculated during execution of the application program, the target performance index range, and the target frequency.
제6 항에 있어서,
상기 추적 단계에서 상기 처리 장치의 동작 주파수가 증가된 후 상기 응용프로그램에 대해 산출되는 현재 성능지표를 상기 목표 성능지표 범위와 비교하여 상기 성능지표의 감소 원인을 분석하는 확인 단계;를 더 포함하는 동적 주파수 조절 방법.
The method according to claim 6,
And analyzing the cause of the decrease in the performance index by comparing the current performance index calculated for the application program with the target performance index range after the operating frequency of the processing apparatus is increased in the tracking step, Frequency adjustment method.
제7 항에 있어서,
상기 추적 단계는,
상기 성능지표가 상기 목표 성능지표 범위의 하한값보다 작은 경우, 상기 성능지표와 상기 최대 성능지표 및 상기 목표 주파수를 기반으로 상기 동작 주파수를 증가시킨 후, 상기 성능지표의 감소 원인을 판별하기 위해 상기 확인 단계로 전환하는 단계;
상기 성능지표가 상기 목표 성능지표 범위의 상한값보다 큰 경우, 상기 주파수들 중 최대 주파수를 상기 처리 장치의 동작 주파수로 설정한 후, 상기 목표 성능지표 범위 및 상기 목표 주파수를 재설정하기 위해 상기 학습 단계로 전환하는 단계; 및
상기 성능지표가 상기 목표 성능지표 범위를 만족하는 경우, 상기 처리 장치의 사용율을 설정된 임계값과 비교하여, 상기 사용율이 상기 임계값보다 작은 경우, 상기 처리 장치의 동작 주파수를 감소시키는 단계;를 포함하는 동적 주파수 조절 방법.
8. The method of claim 7,
Wherein the tracking step comprises:
And when the performance index is smaller than the lower limit value of the target performance index range, the operating frequency is increased based on the performance index, the maximum performance index, and the target frequency, ;
Setting the maximum frequency among the frequencies to the operating frequency of the processing device when the performance index is larger than the upper limit value of the target performance index range, and then returning the target performance index range and the target frequency to the learning step Switching; And
And comparing the usage rate of the processing device with a preset threshold value when the performance index satisfies the target performance index range and decreasing an operation frequency of the processing device when the utilization rate is smaller than the threshold value / RTI &gt;
제7 항에 있어서,
상기 확인 단계는,
상기 현재 성능지표를 상기 목표 성능지표 범위와 비교하여, 상기 현재 성능지표가 상기 목표 성능지표 범위를 만족하지 않는 것으로 판단되는 경우, 상기 현재 성능지표를 상기 동작 주파수가 증가되기 전에 산출된 과거 성능지표와 비교하는 단계; 및
상기 현재 성능지표가 상기 과거 성능지표보다 감소되는 것으로 판단되는 경우, 상기 현재 성능지표, 상기 최대 성능지표 및 상기 목표 주파수를 기반으로 상기 동작 주파수를 조절한 후, 상기 목표 성능지표 범위의 재설정을 위해 상기 학습 단계로 전환하는 단계;를 포함하는 동적 주파수 조절 방법.
8. The method of claim 7,
Wherein,
Comparing the current performance indicator with the target performance indicator range, and when the current performance indicator is determined not to satisfy the target performance indicator range, comparing the current performance indicator with a past performance indicator calculated before the operation frequency is increased ; And
Wherein the control unit adjusts the operating frequency based on the current performance index, the maximum performance index, and the target frequency, and then, if the current performance index is determined to be smaller than the past performance index, And switching to the learning step.
제6 항에 있어서,
상기 학습 단계는,
상기 처리 장치를 구성하는 복수의 처리부의 사용율을 기반으로 상기 복수의 처리부에 대하여 우선순위를 결정하는 단계; 및
상기 우선순위에 따라 순차적으로 상기 복수의 처리부에 대해 상기 최대 성능지표를 만족하는 최소 주파수들의 조합을 결정하여 목표 주파수들을 산출하는 단계;를 포함하는 동적 주파수 조절 방법.
The method according to claim 6,
In the learning step,
Determining a priority order for the plurality of processing units based on utilization rates of the plurality of processing units constituting the processing apparatus; And
And calculating target frequencies by sequentially determining a combination of minimum frequencies satisfying the maximum performance index for the plurality of processors in accordance with the priority order.
제6 항 내지 제10 항 중 어느 한 항에 기재된 동적 주파수 조절 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium on which a program for executing the dynamic frequency adjustment method according to any one of claims 6 to 10 is recorded.
KR1020160173797A 2016-12-19 2016-12-19 Apparatus and method for dynamic frequency scaling, and recording medium KR101984261B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160173797A KR101984261B1 (en) 2016-12-19 2016-12-19 Apparatus and method for dynamic frequency scaling, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160173797A KR101984261B1 (en) 2016-12-19 2016-12-19 Apparatus and method for dynamic frequency scaling, and recording medium

Publications (2)

Publication Number Publication Date
KR20180071056A true KR20180071056A (en) 2018-06-27
KR101984261B1 KR101984261B1 (en) 2019-05-30

Family

ID=62790108

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160173797A KR101984261B1 (en) 2016-12-19 2016-12-19 Apparatus and method for dynamic frequency scaling, and recording medium

Country Status (1)

Country Link
KR (1) KR101984261B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021132823A1 (en) * 2019-12-22 2021-07-01 Samsung Electronics Co., Ltd. Method and apparatus for scaling resources of graphics processing unit in cloud computing system
CN114510140A (en) * 2020-11-16 2022-05-17 深圳市万普拉斯科技有限公司 Frequency modulation method and device and electronic equipment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050075359A (en) * 2002-10-14 2005-07-20 인텔 코오퍼레이션 A method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device
KR20070003989A (en) * 2004-03-30 2007-01-05 인텔 코오퍼레이션 Managing power consumption by requesting an adjustment to an operating point of a processor
KR20070099181A (en) * 2006-04-03 2007-10-09 삼성전자주식회사 Power management system and method thereof
KR101471303B1 (en) * 2013-10-02 2014-12-10 포항공과대학교 산학협력단 Device and method of power management for graphic processing unit
KR101666549B1 (en) * 2015-09-15 2016-10-17 인천대학교 산학협력단 Method for dynamic frequency scailing of cpu in the computing device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050075359A (en) * 2002-10-14 2005-07-20 인텔 코오퍼레이션 A method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device
KR20070003989A (en) * 2004-03-30 2007-01-05 인텔 코오퍼레이션 Managing power consumption by requesting an adjustment to an operating point of a processor
KR20070099181A (en) * 2006-04-03 2007-10-09 삼성전자주식회사 Power management system and method thereof
KR101471303B1 (en) * 2013-10-02 2014-12-10 포항공과대학교 산학협력단 Device and method of power management for graphic processing unit
KR101666549B1 (en) * 2015-09-15 2016-10-17 인천대학교 산학협력단 Method for dynamic frequency scailing of cpu in the computing device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021132823A1 (en) * 2019-12-22 2021-07-01 Samsung Electronics Co., Ltd. Method and apparatus for scaling resources of graphics processing unit in cloud computing system
US11762685B2 (en) 2019-12-22 2023-09-19 Samsung Electronics Co., Ltd. Method and apparatus for scaling resources of graphics processing unit in cloud computing system
CN114510140A (en) * 2020-11-16 2022-05-17 深圳市万普拉斯科技有限公司 Frequency modulation method and device and electronic equipment
CN114510140B (en) * 2020-11-16 2024-04-16 深圳市万普拉斯科技有限公司 Frequency modulation method and device and electronic equipment

Also Published As

Publication number Publication date
KR101984261B1 (en) 2019-05-30

Similar Documents

Publication Publication Date Title
US10460362B2 (en) Adaptive power management of a cluster of host computers using predicted data
US9176569B2 (en) Apparatus and method for dynamically adjusting frequency of central processing unit
US10248448B2 (en) Unified storage/VDI provisioning methodology
KR102490908B1 (en) Resource scheduling method and terminal device
US11307884B2 (en) Adaptive resource management of a cluster of host computers using predicted data
US9959138B1 (en) Adaptive self-maintenance scheduler
KR20190109408A (en) Adaptive Power Control Loop
KR20130101693A (en) Method and apparatus for power management in virtualization system using different operation system
CN110737512A (en) Cross-platform virtual machine online migration method and related components
US8843672B2 (en) Access method, computer and recording medium
US20170010992A1 (en) Power saving feature for storage subsystems
US10891150B2 (en) Storage control method and storage controller for user individual service environment
US9734048B2 (en) Storage management device, performance adjustment method, and computer-readable recording medium
KR101984261B1 (en) Apparatus and method for dynamic frequency scaling, and recording medium
CN112256383B (en) Method, device, equipment and medium for adjusting CPU core number of virtual machine
US20210224119A1 (en) Energy efficiency adjustments for a cpu governor
US20130125116A1 (en) Method and Device for Adjusting Virtual Resource and Computer Readable Storage Medium
US9135064B2 (en) Fine grained adaptive throttling of background processes
US20110179424A1 (en) Method and system for self-tuning of hardware resources
JP7214287B1 (en) Resource allocation determination method, device, computing device and computer program
CN115657952A (en) Method, device and medium for adjusting data reconstruction speed according to slow request
US11868802B2 (en) Application lifecycle management based on real-time resource usage
JP6848278B2 (en) Storage management device, performance adjustment method and performance adjustment program
CN108280113B (en) Service Worker control method and device and electronic terminal
US12099738B2 (en) Method and apparatus for adaptively managing data disk capacity, electronic device, and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right