KR20180012767A - 시간적 열 결합 인지 전력 예산 방법 - Google Patents

시간적 열 결합 인지 전력 예산 방법 Download PDF

Info

Publication number
KR20180012767A
KR20180012767A KR1020177034372A KR20177034372A KR20180012767A KR 20180012767 A KR20180012767 A KR 20180012767A KR 1020177034372 A KR1020177034372 A KR 1020177034372A KR 20177034372 A KR20177034372 A KR 20177034372A KR 20180012767 A KR20180012767 A KR 20180012767A
Authority
KR
South Korea
Prior art keywords
frequency
processor
thread
affected
unaffected
Prior art date
Application number
KR1020177034372A
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 에이엠디 프로덕츠 (차이나) 씨오., 엘티디.
Publication of KR20180012767A publication Critical patent/KR20180012767A/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/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/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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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

Landscapes

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

Abstract

본 발명은 전력 예산 방법 및 시스템에 관한 것이다. 전력 예산 방법은 프로그램의 주파수-영향을 받지 않는 단계 및 주파수-영향을 받는 단계를 예측하는 단계, 프로세서에 의해 실행되는 프로그램이 주파수-영향을 받지 않는 단계에 진입할 때 프로세서에 인가되는 전력을 감소시키는 단계 및 프로세서에 의해 실행되는 프로그램이 주파수-영향을 받는 단계에 진입할 때 프로세서에 인가되는 전력을 증가시키는 단계를 포함한다. 본 발명에 의해 제공된 방법 및 시스템은 프로그램 실행 효율을 개선하기 위해 프로그램들을 실행하는 전체 성능을 부스팅할 수 있다. 또한, 본 발명의 전력 예산 방법 및 시스템은 열 인지이며, 이것은 프로세서의 신뢰성을 보장할 수 있다.

Description

시간적 열 결합 인지 전력 예산 방법
본 발명은 전반적으로 프로세서들에 대한 성능 최적화에 관한 것이다. 보다 구체적으로, 본 발명은 프로세서 성능을 개선하기 위한 전력 예산 방법 및 시스템에 관한 것이다.
컴퓨터 분야에서, 프로세서들의 성능을 개선하는 것은 중요한 측면이다. 프로세서는 다양한 동작 주파수들을 갖고 설계된다. 프로세서에 공급될 수 있는 최대 전력은 온도, 전력 전달 시스템의 전력 공급 능력, 및 전력 공급 네트워크의 저항 강하 이슈 등과 같은 여러 요인들에 의해 제한된다. 프로세서가 어떻게 그것의 전력 제한 내에서 보다 양호한 성능을 달성하기 위해 애플리케이션 또는 프로그램을 더 빠르게 실행하게 하는지가 도전적인 문제이다.
현재는, 다양한 방식들이 프로세서의 전력 제한 내에서 프로세서 성능을 최적화하기 위해 제안되어 왔다. 예를 들면, 하나의 기존의 방법은 가속 프로세싱 유닛(APU) 시스템에서 전력 관리를 행하기 위해 사용되는 협력적 부스팅 방법이다. 이 방법에서, 전력은 성능 결합 및 열 결합 효과들을 고려함으로써 최적의 성능을 달성하기 위해 CPU 및 GPU 사이에 할당된다.
또 다른 제안된 방법은 전력 예산에서 전력을 유지하면서 성능을 개선하기 위해 병렬 멀티스레드 작업 부하들에서 전력 예산을 할당하는, 즉 비-임계 스레드들로부터 전력을 취하고 그것을 임계 스레드들에 인가하는, 전력 토큰 밸런싱 방법이다. 도 1은 이러한 제안된 방법의 개략적인 뷰를 도시하며, 여기에서 코어들(C1, C2, C3, 및 C4)의 각각은 도 1에 도시된 "10"과 같은, 동일한 양의 전력을 할당받는다. 코어 2(C2) 및 코어 3(C3)에서의 스레드들이 배리어에 도달하며 스피닝 상태에 들어갈 때, 그것들은 단지 작은 양의 전력만을 소비하며(도 1에 표시된 "4"와 같은), 그 후 그 안에서 전력 토큰 밸런싱(PTB) 유닛들은 코어 1/코어 4에서 스레드들의 실행의 속도를 높이기 위해 코어 2/코어 3으로부터 코어 1(C1)/코어 4(C4)로 이중 전력 예산(즉, 도면에서 도시된 "6")을 할당하며, 그에 의해 프로세서의 성능을 개선할 수 있다.
종래 기술에서 상기 방법들은 실행 성능을 개선할 수 있지만, 프로세서 성능을 개선하기 위한 상기 기존의 방법들은 공간적 전력 할당에 기초하며 주어진 짧은 타이밍 윈도우에서 성능을 최적화하려고 노력한다. 이들 기존의 방법들은 프로세서 성능에 대한 시간적 열 결합(temporal thermal coupling) 영향을 고려하지 않으며, 따라서 차선의 결과가 있을 수 있다.
프로세서 성능을 추가로 최적화하도록 기존의 성능 개선 방법들에서의 단점들을 극복하기 위해, 본 발명은 프로세서 성능에 대한 시간적 열 결합 영향을 고려하는 시간적 열 결합 인지 전력 예산 방법 및 시스템을 제공한다.
제 1 측면에서, 전력 예산 방법이 제공된다. 상기 방법은 프로그램의 주파수-영향을 받지 않는 단계(frequency-insensitive phase) 및 주파수-영향을 받는 단계(frequency-sensitive phase)를 예측하는 단계; 프로세서에 의해 실행되는 프로그램이 상기 주파수-영향을 받지 않는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 감소시키는 단계; 및 상기 프로세서에 의해 실행되는 프로그램이 상기 주파수-영향을 받는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 증가시키는 단계를 포함한다. 상기 주파수-영향을 받는 단계는 상기 주파수-영향을 받지 않는 단계를 뒤따를 수 있으며, 상기 전력은 상기 프로세서의 최대 허용 온도를 초과하지 않고 인가될 수 있다.
제 2 측면에서, 전력 예산 방법이 제공된다. 상기 방법은 다수의 프로그램들의 주파수-영향을 받지 않는 스레드 및 주파수-영향을 받는 스레드를 결정하는 단계; 상기 다수의 프로그램들의 주파수-영향을 받지 않는 스레드 및 주파수-영향을 받는 스레드를 동일한 코어에 교번하여 할당하는 단계; 상기 프로세서가 상기 주파수-영향을 받지 않는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 감소시키는 단계; 및 상기 프로세서가 상기 주파수-영향을 받는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 증가시키는 단계를 포함한다. 상기 주파수-영향을 받는 스레드는 상기 주파수-영향을 받지 않는 스레드를 뒤따를 수 있으며, 상기 전력은 상기 프로세서의 최대 허용 온도를 초과하지 않고 인가될 수 있다.
제 3 측면에서, 전력 예산 시스템이 제공된다. 상기 시스템은 프로그램의 주파수-영향을 받지 않는 단계 및 주파수-영향을 받는 단계를 예측하기 위한 수단; 프로세서에 의해 실행되는 프로그램이 상기 주파수-영향을 받지 않는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 감소시키기 위한 수단; 및 상기 프로세서에 의해 실행되는 상기 프로그램이 상기 주파수-영향을 받는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 증가시키기 위한 수단을 포함한다. 상기 주파수-영향을 받는 단계는 상기 주파수-영향을 받지 않는 단계에 뒤이어 진입할 수 있으며, 상기 전력은 상기 프로세서의 최대 허용 온도를 초과하지 않고 인가될 수 있다.
제 4 측면에서, 전력 예산 시스템이 제공된다. 상기 시스템은 다수의 프로그램들의 주파수-영향을 받지 않는 스레드 및 주파수-영향을 받는 스레드를 결정하기 위한 수단; 상기 다수의 프로그램들의 주파수-영향을 받지 않는 스레드 및 주파수-영향을 받는 스레드를 동일한 코어에 교번하여 할당하기 위한 수단; 상기 프로세서가 상기 주파수-영향을 받지 않는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 감소시키기 위한 수단; 및 상기 프로세서가 상기 주파수-영향을 받는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 증가시키기 위한 수단을 포함한다. 상기 주파수-영향을 받는 스레드는 상기 주파수-영향을 받지 않는 스레드에 뒤이어 진입할 수 있으며, 상기 전력은 상기 프로세서의 최대 허용 온도를 초과하지 않고 인가될 수 있다.
상기 언급된 방법에서의 단계들 및 상기 언급된 시스템을 제공함으로써, 본 발명은 시간적으로 프로세서에 인가된 전력을 최적화함으로써 기존의 전력 관리 체계들에서의 결함들을 극복할 수 있으며, 따라서 프로세서들의 성능을 추가로 개선할 수 있다. 또한, 본 발명의 전력 예산 방법 및 시스템은 열 인지(thermal aware)이며, 이것은 또한 프로세서의 신뢰성을 보장할 수 있다.
본 발명은 첨부한 도면들의 도들에서, 제한으로서가 아닌, 예로서 예시되며, 여기에서 유사한 숫자들은 유사한 요소들을 나타낸다:
도 1은 종래 기술에서 프로세서 성능을 개선하기 위한 전력 토큰 밸런싱 방법의 개략도이다;
도 2는 (b) 본 발명의 전력 예산 방법에 비교하여, (a) 종래 기술에서 기존의 전력 관리 체계에 따른 프로그램의 상이한 실행 단계들에서 전력 상태, 온도 및 최대 허용 온도를 도시하는 개략도이다;
도 3은 단일 프로그램을 실행하는 동안 사용된 시간적 열 결합 인지 진력 예산 방법의 흐름도이다; 및
도 4는 다수의 프로그램들을 실행하는 동안 사용된 시간적 열 결합 인지 진력 예산 방법의 대표적인 실시예의 흐름도이다.
본 발명은 이제 수반되는 도면들에서 예시된 바와 같이 그것의 몇몇 측면들을 참조하여 상세히 설명될 것이다. 다음의 설명에서, 다수의 특정 세부사항들이 본 발명의 철저한 이해를 제공하기 위해 제시된다. 그러나, 본 발명은 이들 특정 세부사항들 중 일부 또는 모두 없이 실시될 수 있다는 것이, 이 기술분야의 숙련자에게 명백할 것이다. 다른 인스턴스들에서, 잘 알려진 프로세스 단계들 및/또는 구조들은 본 발명을 불필요하게 모호하게 하지 않도록 상세히 설명되지 않았다.
아키텍처, 캐시의 크기 등과 같은 여러 개의 하드웨어 특성들에 의해 영향을 받는 것 외에, 프로세서의 성능은 또한 작업 부하 또는 그것 상에서 실행되는 프로그램의 특성에 의해 영향을 받는다. 즉, 프로그램들 또는 애플리케이션들의 특성은 또한 프로세서의 실행 성능에 영향을 준다. 몇몇 애플리케이션들 또는 프로그램들은 주파수-영향을 받는다. 그것들이 프로세서에 의해 실행될 때, 프로세서의 실행 성능은 프로세서의 동작 주파수의 부스트에 따라 상당히 부스팅될 수 있다. 몇몇 애플리케이션들 또는 프로그램들은 주파수-영향을 받지 않는다. 그것들이 프로세서에 의해 실행될 때, 주파수 변화들은 프로세서의 실행 성능에 낮은 영향을 준다. 한편, 단일 프로그램 또는 애플리케이션에 대해, 주파수 민감도는 또한 상이한 실행 단계들에서 달라질 수 있다. 프로그램 또는 애플리케이션의 몇몇 실행 단계들은 주파수-영향을 받지 않을 수 있는 반면 다른 것들은 주파수-영향을 받을 수 있으며, 이것은 또한 프로세서의 실행 성능에 영향을 미친다.
도 2는 프로그램 또는 애플리케이션이 각각, 본 발명의 시간적 열 결합 인지 진력 예산 방법과 비교하여 양방향 애플리케이션 전력 관리(BAPM)와 같은 기존의 전력 관리 체계들에 따라 프로세서에 의해 실행될 때 프로그램 또는 애플리케이션의 상이한 실행 단계들에서 전력의 상태, 온도 및 최대 허용 온도를 보여주는 개략도이다. 도시된 바와 같이, 도 2는 두 개의 다이어그램들((a) 및 (b))을 포함하며, 여기에서 다이어그램 (a)는 프로그램이 BAPM과 같은 기존의 전력 관리 체계에 의해 실행될 때 프로그램의 상이한 실행 단계들에서 전력의 상태, 온도 및 최대 허용 온도를 보여주며, 다이어그램 (b)는 프로그램이 본 발명의 일 설명적 실시예에 따른 시간적 열 결합 인지 진력 예산 방법에 의해 실행될 때 프로그램의 상이한 실행 단계들에서 전력의 상태, 온도 및 최대 허용 온도를 보여준다.
도 2에서, 다이어그램들((a) 및 (b))에서 두 개의 라인들(M)은 프로세서가 도달하도록 허용될 수 있는 최대 허용 온도를 나타낸다. 라인(P)은 그것이 기존의 전력 관리 체계에 따라 단일 프로그램을 실행할 때 프로세서에 인가된 전력을 나타내며, P'는 그것이 본 발명의 전력 예산 관리 체계에 따라 단일 프로그램을 실행할 때 프로세서에 인가된 전력을 나타낸다. 라인(T)은 그것이 기존의 전력 관리 체계에 따라 단일 프로그램을 실행할 때 프로세서의 온도를 나타내며, T'는 본 발명의 전력 예산 관리 체계에 따라 단일 프로그램을 실행할 때 프로세서의 온도를 나타낸다.
도 2에 도시된 예에서 도시된 바와 같이, 처음에, 전형화된 프로그램은 주파수-영향을 받지 않는 단계(S1)를 가지며, 이것은 프로세서의 실행 성능이 주파수 변화들에 의해 덜 영향을 받는다는 것을 의미한다. 이 단계에서, 다이어그램 (b)에 도시된 바와 같이, 우리는 프로세서의 온도를 낮추기 위해, 프로세서에 인가된 전력(P')을 종래 기술에 따른 전력(P)(다이어그램 (a) 참조)보다 낮게 만들 수 있으며, 이것은 단지 약간 저하된 성능을 갖고, 이 단계를 위한 보다 많은 열적 헤드룸을 얻을 수 있다. 예를 들면, 우리는 프로세서의 전력을 감소시키기 위해 프로세서의 동작 주파수를 감소시킬 수 있다. 그 후, 프로그램은 주파수-영향을 받는 단계(S2)에 들어가며, 여기에서 실행 성능은 주파수 부스팅에 따라 상당히 증가될 수 있다. 이 단계에서, 다이어그램 (b)에 도시된 바와 같이, 저 주파수 민감도 단계(S1) 동안 획득된 부가적인 열적 헤드룸을 사용함으로써, 우리는 프로세서의 최대 허용 온도(M)를 초과하지 않고 다이어그램 (a)에 도시된 동일한 단계에서 프로세서에 인가된 전력(P)보다 높게 단계(S2)에서 프로세서에 인가된 전력(P')을 증가시킬 수 있다. 대안적으로 또는 그 외에, 우리는 P'보다 낮은 전력으로 프로세서의 전력을 증가시키며 최대 허용 온도(M)를 초과하지 않고 보다 긴 지속 기간 동안 상기 전력에서 구동할 수 있다. 일 측면에서, 우리는 프로세서의 전력을 증가시키기 위해 프로세서의 동작 주파수를 부스팅할 수 있다. 이러한 방식으로, 프로그램을 실행하는 성능은 긴 타이밍 윈도우에 걸쳐 최적화될 수 있으며, 그에 의해 전역적으로 보다 높은 성능을 달성한다. 도 2에 도시된 바와 같이, BAPM과 같은 기존의 전력 관리 체계를 사용하여 프로그램을 끝내는데 시간 지속 기간(T2)이 걸린다. 본 발명의 시간적 열 결합 인지 진력 예산 방법과의 비교에 의해, 프로그램은 보다 짧은 시간 지속 기간(T1)에서 종료될 수 있다.
설명적 일 측면에서, 도 3은 단일 프로그램 또는 애플리케이션을 실행하는데 사용된 시간적 열 결합 인지 진력 예산 방법의 흐름도를 도시한다. 방법은 다음의 단계들을 포함한다. 첫 번째로, 단계(30)에서, 프로그램의 주파수-영향을 받지 않는 단계 및 주파수-영향을 받는 단계를 예측한다. 그 후, 단계(32)에서, 프로세서에 의해 실행되는 프로그램이 주파수-영향을 받지 않는 단계에 진입할 때 프로세서에 인가되는 전력을 감소시킨다. 그 후, 단계(34)에서, 방법은 프로세서에 의해 실행되는 프로그램이 주파수-영향을 받는 단계에 진입할 때 프로세서에 인가되는 전력을 증가시키는 단계를 추가로 포함한다. 실시예에서, 주파수-영향을 받는 단계는 주파수-영향을 받지 않는 단계를 뒤따른다. 일 측면에서, 프로세서에 인가된 전력은 프로세서의 동작 주파수를 증가시키거나 또는 감소시킴으로써 증가되거나 또는 감소될 수 있다.
일 측면에서, 상기 단계(32)에서, 현재 단계의 주파수 민감도 및 다음 단계의 주파수 민감도는 현재 단계에 대한 최적의 전력 예산을 결정하기 위해 사용된다. 즉, 현재 단계와 다음 단계의 민감도 레벨들간의 상대적 관계가 단계(32)에서 전력 감소 정도를 결정하기 위해 사용된다. 예를 들면, 일 측면에서, 주파수 민감도 레벨이 현재 단계에서 매우 낮으며 다음 단계에서 매우 높다면, 현재 단계에 대한 전력은 최소 레벨로 낮아질 수 있으며, 따라서 그것은 현재 단계의 성능을 상당히 약화시키지 않을 것이지만, 다음 단계에서 최고 주파수 부스트를 얻을 수 있다. 현재 단계에 대한 주파수 민감도 레벨이 중저이며, 다음 단계에 대한 민감도가 중고이면, 현재 단계에 대한 전력은 제 1 경우만큼 어그레시브(aggressive)하지 않은 비교적 낮은 레벨로 낮아질 수 있다. 극단적인 경우에, 현재 및 다음 단계들에 대한 주파수 민감도 레벨이 유사할 때, 전력은 낮아지지 않는다.
일 측면에서, 프로그램의 주파수-영향을 받지 않는 단계는, 예를 들면, 저장 동작, 액세스 동작 등과 같은 메모리-관련 동작들이 실행되는 단계일 수 있다. 프로그램의 주파수-영향을 받는 단계는 예를 들면, 산술 연산, 논리 연산 등과 같은 계산-관련 동작들이 실행되는 단계일 수 있다.
도 3에 도시된 상기 방법에 따르면, 프로그램이 주파수-영향을 받지 않는 단계에 진입할 때 프로세서에 인가되는 전력을 감소시킴으로써, 프로세서는 보다 낮은 온도에서 동작할 수 있으며, 이것은 결과적으로 프로세서로 하여금 프로그램의 주파수-영향을 받는 단계에서 보다 높은 전력에서 동작하도록 허용하기 위해 사용될 수 있는 보다 많은 온도 헤드룸(headroom)(즉, 프로세서의 현재 온도 및 최대 허용 온도 사이에서의 차이)을 제공할 수 있다. 이러한 방법을 통해, 주파수-영향을 받지 않는 단계에서의 성능이 약간 저하될 수 있을지라도, 주파수-영향을 받는 단계에서의 성능은 주파수-영향을 받지 않는 단계에서 저하된 성능이 비해 크게 부스팅될 것이다. 따라서, 전체로서, 프로그램을 실행하기 위한 프로세서의 전체 성능은 개선된다.
일 측면에서, 도 4는 다수의 프로그램들을 실행하기 위한 시간적 열 결합 인지 진력 예산 방법의 대표적인 실시예의 흐름도를 도시한다. 방법은 다음의 단계들을 포함한다: 첫 번째로, 단계(40)에서, 다수의 프로그램들의 주파수-영향을 받지 않는 스레드 및 주파수-영향을 받는 스레드를 결정한다; 그 후 단계(42)에서, 다수의 프로그램들의 주파수-영향을 받지 않는 스레드(들) 및 주파수-영향을 받는 스레드(들)를 동일한 코어에 교번하여 할당한다; 그 후, 단계(44)에서, 프로세서가 주파수-영향을 받지 않는 스레드(들)를 실행할 때 프로세서에 인가되는 전력을 감소시키다. 단계(46)에서, 방법은 프로세서가 주파수-영향을 받는 스레드를 실행할 때 프로세서에 인가되는 전력을 증가시키는 단계를 추가로 포함한다. 일 측면에서, 전력은 프로세서가 프로세서의 최대 허용 온도를 초과하지 않고 주파수-영향을 받지 않는 스레드에 이어 주파수-영향을 받는 스레드를 실행할 때 증가될 수 있다. 일 측면에서, 프로세서에 인가된 전력은 프로세서의 동작 주파수를 증가시키거나 또는 감소시킴으로써 증가되거나 또는 감소될 수 있다. 일 측면에서, 프로그램들의 주파수-영향을 받지 않는 스레드는, 예를 들면, 저장 동작, 액세스 동작 등과 같은 메모리-관련 동작들을 포함한 스레드일 수 있다. 프로그램들의 주파수-영향을 받는 스레드는, 예를 들면, 산술 연산들, 논리 연산 등과 같은 계산-관련 동작들을 포함한 스레드일 수 있다.
일 측면에서, 상기 단계(44)에서, 현재 스레드의 주파수 민감도 및 다음 스레드의 주파수 민감도는 현재 스레드에 대한 최적의 전력 예산을 결정하기 위해 사용된다. 즉, 현재 스레드 및 다음 스레드의 민감도 레벨들간의 상대적 관계는 단계(44)에서 전력 감소 정도를 결정하기 위해 사용된다. 예를 들면, 일 측면에서, 주파수 민감도 레벨이 현재 스레드에서 매우 낮으며 다음 스레드에서 매우 높다면, 현재 스레드에 대한 전력은 최소 레벨로 낮아질 수 있으며, 따라서 그것은 현재 스레드의 성능을 상당히 약화시키지 않을 것이지만, 다음 스레드에서 최고 주파수 부스트를 얻을 수 있다. 현재 스레드에 대한 주파수 민감도 레벨이 중저이며, 다음 스레드에 대한 민감도가 중고이면, 현재 스레드에 대한 전력은 제 1 경우만큼 어그레시브하지 않은 비교적 낮은 레벨로 낮아질 수 있다. 극단적인 경우에, 현재 및 다음 스레드들에 대한 주파수 민감도 레벨이 유사할 때, 전력은 낮아지지 않는다.
도 4에 도시된 상기 방법에 따르면, 프로세서가 주파수-영향을 받지 않는 스레드(들)를 실행할 때 프로세서에 인가되는 전력을 감소시킴으로써, 프로세서는 보다 낮은 온도에서 동작할 수 있으며, 이것은 결과적으로 프로세서로 하여금 프로그램들의 주파수-영향을 받는 스레드(들)를 실행할 때 보다 높은 전력에서 동작하도록 허용하기 위해 사용될 수 있는 보다 많은 온도 헤드룸을 제공할 수 있다. 이러한 방법을 통해, 주파수-영향을 받지 않는 스레드를 실행할 때 성능이 약간 저하될 수 있을지라도, 주파수-영향을 받는 스레드를 실행할 때 성능은 저하된 성능에 비해 크게 부스팅될 것이다. 따라서, 전체로서, 다수의 프로그램들을 실행하기 위한 프로세서의 전체 성능은 개선된다.
프로그램들을 실행하기 위해 전체 성능을 개선하는 것 외에, 본 발명의 설명된 전력 예산 방법들은 또한 다른 이득들을 생성할 수 있다. 예를 들면, 본 발명의 전력 예산 방법은 열 인지이며, 이것은 프로세서의 신뢰성을 보장할 수 있다. 본 발명의 전력 예산 방법들은 시간적 전력 할당에 기초한 전력 예산 방법이며, 이것은 또한 프로세서들의 성능의 포괄적인 공간적 및 시간적 최적화를 달성하기 위해 다른 공간적 전력 예산 방법들과 조합될 수 있다.
특징들 및 요소들이 특정한 조합들로 상기 설명되지만, 각각의 특징 또는 요소는 다른 특징들 및 요소들 없이 단독으로 또는 다른 특징들 및 요소들을 갖거나 또는 그것 없이 다양한 조합들로 사용될 수 있다. 여기에서 제공된 방법들 또는 흐름도들은 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터-판독 가능한 저장 매체에 통합된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어에서 구현될 수 있다. 컴퓨터-판독 가능한 미디어의 예들은, 이에 제한되지 않지만: 하드 디스크들, 플로피 디스크들, 및 자기 테이프와 같은 자기 미디어; CD-ROM들 및 홀로그램 디바이스들과 같은 광 미디어; 플롭티컬 디스크들과 같은 광자기 미디어; 및 애플리케이션-특정 집적 회로들(ASIC들), 프로그램 가능한 논리 디바이스들 및 ROM 및 RAM 디바이스들과 같은, 프로그램 코드를 저장하며 실행하도록 특별히 구성되는 하드웨어 디바이스들을 포함한다.
다양한 수정예들 및 변화예들이 청구된 주제의 사상 및 범위로부터 벗어나지 않고 여기에서 설명된 실시예들에 대해 이루어질 수 있다는 것이 이 기술분야의 숙련자들에게 명백할 것이다. 따라서, 명세서는, 수정예 및 변화예들이 첨부된 청구항들 및 그것들의 등가물들의 범위 내에 있다고 하면, 설명된 다양한 실시예들의 이러한 수정예들 및 변화예들을 커버하도록 의도된다.

Claims (20)

  1. 전력 예산 방법(power budgeting method)에 있어서,
    프로그램의 주파수-영향을 받지 않는 단계(frequency-insensitive phase) 및 주파수-영향을 받는 단계(frequency-sensitive phase)를 예측하는 단계;
    프로세서에 의해 실행되는 상기 프로그램이 상기 주파수-영향을 받지 않는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 감소시키는 단계; 및
    상기 프로세서에 의해 실행되는 상기 프로그램이 상기 주파수-영향을 받는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 증가시키는 단계를 포함하는, 전력 예산 방법.
  2. 청구항 1에 있어서,
    상기 주파수-영향을 받는 단계는 상기 주파수-영향을 받지 않는 단계를 뒤따르는, 전력 예산 방법.
  3. 청구항 2에 있어서,
    상기 프로세서에 인가되는 전력은 현재 단계와 다음 단계의 주파수 민감도 레벨들간의 상대적 관계에 기초하여 감소되는, 전력 예산 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 프로세서에 인가되는 전력을 감소시키는 단계는 상기 프로세서의 동작 주파수를 감소시키는 단계를 포함하며, 상기 프로세서에 인가되는 전력을 증가시키는 단계는 상기 프로세서의 동작 주파수를 증가시키는 단계를 포함하는, 전력 예산 방법.
  5. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 주파수-영향을 받지 않는 단계는 메모리-관련 동작(memory-related operation)들이 실행되는 단계이며, 상기 주파수-영향을 받는 단계는 계산-관련 동작(들이 실행되는 단계인, 전력 예산 방법.
  6. 전력 예산 방법에 있어서,
    다수의 프로그램들의 주파수-영향을 받지 않는 스레드(thread) 및 주파수-영향을 받는 스레드를 결정하는 단계;
    상기 다수의 프로그램들의 상기 주파수-영향을 받지 않는 스레드 및 상기 주파수-영향을 받는 스레드를 동일한 코어에 교번하여 할당하는 단계;
    상기 프로세서가 상기 주파수-영향을 받지 않는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 감소시키는 단계; 및
    상기 프로세서가 상기 주파수-영향을 받는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 증가시키는 단계를 포함하는, 전력 예산 방법.
  7. 청구항 6에 있어서,
    상기 주파수-영향을 받는 스레드는 상기 주파수-영향을 받지 않는 스레드를 뒤따르는, 전력 예산 방법.
  8. 청구항 7에 있어서,
    상기 프로세서에 인가되는 전력은 현재 스레드와 다음 스레드의 주파수 민감도 레벨들간의 상대적 관계에 기초하여 감소되는, 전력 예산 방법.
  9. 청구항 6 내지 청구항 8 중 어느 한 항에 있어서,
    상기 프로세서에 인가되는 전력을 감소시키는 단계는 상기 프로세서의 동작 주파수를 감소시키는 단계를 포함하며, 상기 프로세서에 인가되는 전력을 증가시키는 단계는 상기 프로세서의 동작 주파수를 증가시키는 단계를 포함하는, 전력 예산 방법.
  10. 청구항 6 내지 청구항 8 중 어느 한 항에 있어서,
    상기 주파수-영향을 받지 않는 스레드는 메모리-관련 동작들을 포함한 스레드이며, 상기 주파수-영향을 받는 스레드는 계산-관련 동작들을 포함한 스레드인, 전력 예산 방법.
  11. 전력 예산 시스템에 있어서,
    프로그램의 주파수-영향을 받지 않는 단계 및 주파수-영향을 받는 단계를 예측하기 위한 수단;
    프로세서에 의해 실행되는 상기 프로그램이 상기 주파수-영향을 받지 않는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 감소시키기 위한 수단; 및
    상기 프로세서에 의해 실행되는 상기 프로그램이 상기 주파수-영향을 받는 단계에 진입할 때 상기 프로세서에 인가되는 전력을 증가시키기 위한 수단을 포함하는, 전력 예산 시스템.
  12. 청구항 11에 있어서,
    상기 주파수-영향을 받는 단계는 상기 주파수-영향을 받지 않는 단계를 뒤따르는, 전력 예산 시스템.
  13. 청구항 12에 있어서,
    상기 프로세서에 인가되는 전력은 현재 단계와 다음 단계의 주파수 민감도 레벨들간의 상대적 관계에 기초하여 감소되는, 전력 예산 시스템.
  14. 청구항 11 내지 청구항 13 중 어느 한 항에 있어서,
    상기 프로세서에 인가되는 전력을 감소시키기 위한 수단은 상기 프로세서의 동작 주파수를 감소시키기 위한 수단을 포함하며, 상기 프로세서에 인가되는 전력을 증가시키기 위한 수단은 상기 프로세서의 동작 주파수를 증가시키기 위한 수단을 포함하는, 전력 예산 시스템.
  15. 청구항 11 내지 청구항 13 중 어느 한 항에 있어서,
    상기 주파수-영향을 받지 않는 단계는 메모리-관련 동작들이 실행되는 단계이며, 상기 주파수-영향을 받는 단계는 계산-관련 동작들이 실행되는 단계인, 전력 예산 시스템.
  16. 전력 예산 시스템에 있어서,
    다수의 프로그램들의 주파수-영향을 받지 않는 스레드 및 주파수-영향을 받는 스레드를 결정하기 위한 수단;
    상기 다수의 프로그램들의 상기 주파수-영향을 받지 않는 스레드 및 상기 주파수-영향을 받는 스레드를 동일한 코어에 교번하여 할당하기 위한 수단;
    상기 프로세서가 상기 주파수-영향을 받지 않는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 감소시키기 위한 수단; 및
    상기 프로세서가 상기 주파수-영향을 받는 스레드를 실행할 때 상기 프로세서에 인가되는 전력을 증가시키기 위한 수단을 포함하는, 전력 예산 시스템.
  17. 청구항 16에 있어서,
    상기 주파수-영향을 받는 스레드는 상기 주파수-영향을 받지 않는 스레드를 뒤따르는, 전력 예산 시스템.
  18. 청구항 17에 있어서,
    상기 프로세서에 인가되는 전력은 현재 스레드와 다음 스레드의 주파수 민감도 레벨들간의 상대적 관계에 기초하여 감소되는, 전력 예산 시스템.
  19. 청구항 16 내지 청구항 18 중 어느 한 항에 있어서,
    상기 프로세서에 인가되는 전력을 감소시키기 위한 수단은 상기 프로세서의 동작 주파수를 감소시키기 위한 수단을 포함하며, 상기 프로세서에 인가되는 전력을 증가시키기 위한 수단은 상기 프로세서의 동작 주파수를 증가시키기 위한 수단을 포함하는, 전력 예산 시스템.
  20. 청구항 16 내지 청구항 18 중 어느 한 항에 있어서,
    상기 주파수-영향을 받지 않는 스레드는 메모리-관련 동작들을 포함한 스레드이며, 상기 주파수-영향을 받는 단계는 계산-관련 동작들을 포함한 스레드인, 전력 예산 시스템.
KR1020177034372A 2015-05-12 2015-10-30 시간적 열 결합 인지 전력 예산 방법 KR20180012767A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510239507.7 2015-05-12
CN201510239507.7A CN106293644B (zh) 2015-05-12 2015-05-12 考虑时间热耦合的功率预算方法
PCT/CN2015/093473 WO2016179977A1 (en) 2015-05-12 2015-10-30 Temporal thermal coupling aware power budgeting method

Publications (1)

Publication Number Publication Date
KR20180012767A true KR20180012767A (ko) 2018-02-06

Family

ID=57248742

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177034372A KR20180012767A (ko) 2015-05-12 2015-10-30 시간적 열 결합 인지 전력 예산 방법

Country Status (6)

Country Link
US (1) US20180107262A1 (ko)
EP (1) EP3295302A4 (ko)
JP (1) JP6776339B2 (ko)
KR (1) KR20180012767A (ko)
CN (1) CN106293644B (ko)
WO (1) WO2016179977A1 (ko)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083835A1 (en) * 2000-12-28 2002-07-04 Paul Vibberts Smoke removing filter assembly for use with a candle
US20050050310A1 (en) * 2003-07-15 2005-03-03 Bailey Daniel W. Method, system, and apparatus for improving multi-core processor performance
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system
US20080313483A1 (en) * 2005-02-01 2008-12-18 Ravikiran Pasupuleti Sureshbabu Method and System for Power Management
US8387052B2 (en) * 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US7386739B2 (en) * 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
US7971073B2 (en) * 2005-11-03 2011-06-28 Los Alamos National Security, Llc Adaptive real-time methodology for optimizing energy-efficient computing
US7840825B2 (en) * 2006-10-24 2010-11-23 International Business Machines Corporation Method for autonomous dynamic voltage and frequency scaling of microprocessors
US8261112B2 (en) * 2008-12-08 2012-09-04 International Business Machines Corporation Optimizing power consumption by tracking how program runtime performance metrics respond to changes in operating frequency
US8447994B2 (en) * 2009-07-24 2013-05-21 Advanced Micro Devices, Inc. Altering performance of computational units heterogeneously according to performance sensitivity
US20120297232A1 (en) * 2011-05-16 2012-11-22 Bircher William L Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
US8954017B2 (en) * 2011-08-17 2015-02-10 Broadcom Corporation Clock signal multiplication to reduce noise coupled onto a transmission communication signal of a communications device
US8909961B2 (en) * 2011-11-29 2014-12-09 Ati Technologies Ulc Method and apparatus for adjusting power consumption level of an integrated circuit
CN103246340A (zh) * 2012-02-06 2013-08-14 索尼公司 动态调整中央处理单元的频率的装置和方法
US20140089699A1 (en) * 2012-09-27 2014-03-27 Advanced Micro Devices Power management system and method for a processor
CN103294550B (zh) * 2013-05-29 2016-08-10 中国科学院计算技术研究所 一种异构多核线程调度方法、系统及异构多核处理器
US20150067356A1 (en) * 2013-08-30 2015-03-05 Advanced Micro Devices, Inc. Power manager for multi-threaded data processor
CN103475790B (zh) * 2013-09-06 2016-03-30 中国科学院计算技术研究所 一种智能移动终端功耗管理方法
US9348380B2 (en) * 2013-12-28 2016-05-24 Samsung Electronics Co., Ltd. Dynamic thermal budget allocation for memory array

Also Published As

Publication number Publication date
JP6776339B2 (ja) 2020-10-28
CN106293644A (zh) 2017-01-04
CN106293644B (zh) 2022-02-01
US20180107262A1 (en) 2018-04-19
EP3295302A4 (en) 2018-12-19
JP2018515870A (ja) 2018-06-14
EP3295302A1 (en) 2018-03-21
WO2016179977A1 (en) 2016-11-17

Similar Documents

Publication Publication Date Title
US9977699B2 (en) Energy efficient multi-cluster system and its operations
JP5564564B2 (ja) 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置
US8813073B2 (en) Compiling apparatus and method of a multicore device
US9348594B2 (en) Core switching acceleration in asymmetric multiprocessor system
US9170854B2 (en) Thread assignment for power and performance efficiency using multiple power states
US9760153B2 (en) Methods and systems for managing performance and power utilization of a processor employing a fully-multithreaded load threshold
US20090172428A1 (en) Apparatus and method for controlling power management
US20140019723A1 (en) Binary translation in asymmetric multiprocessor system
US10031573B2 (en) Energy efficiency strategy for interrupt handling in a multi-cluster system
JP2011070661A (ja) マルチコアプロセッサの低電力動作の方法及び装置
TWI477955B (zh) 用於圖形處理器之效能改善的方法、非暫時性電腦可讀取媒體以及圖形處理器
KR20110049409A (ko) 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치
EP3376381A1 (en) Resource management method and system, and computer storage medium
KR101392584B1 (ko) 리소스 모니터링을 이용한 동적 데이터 처리 장치 및 그 방법
Lin et al. ARM platform for performance and power efficiency—Hardware and software perspectives
US20190129752A1 (en) Switch policy for hybrid scheduling in multi-processor systems
US8610727B1 (en) Dynamic processing core selection for pre- and post-processing of multimedia workloads
JP2013149221A (ja) プロセッサの制御装置およびその方法
KR20180012767A (ko) 시간적 열 결합 인지 전력 예산 방법
KR101463533B1 (ko) 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치
TW201023046A (en) Delegated virtualization across physical partitions of a multi-core processor (MCP)
US20140351828A1 (en) Apparatus and method for controlling multi-core system on chip
CN114610578A (zh) 一种资源状态管理方法、装置、电子设备及存储介质
KR20220065037A (ko) 다중 스레드 마이크로프로세서의 공유 리소스 할당
US20140380329A1 (en) Controlling sprinting for thermal capacity boosted systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application