KR20150063543A - 프로세서의 구성가능한 피크 성능 제한들의 제어 - Google Patents

프로세서의 구성가능한 피크 성능 제한들의 제어 Download PDF

Info

Publication number
KR20150063543A
KR20150063543A KR1020157011451A KR20157011451A KR20150063543A KR 20150063543 A KR20150063543 A KR 20150063543A KR 1020157011451 A KR1020157011451 A KR 1020157011451A KR 20157011451 A KR20157011451 A KR 20157011451A KR 20150063543 A KR20150063543 A KR 20150063543A
Authority
KR
South Korea
Prior art keywords
processor
frequency
value
values
configurable
Prior art date
Application number
KR1020157011451A
Other languages
English (en)
Other versions
KR101748747B1 (ko
Inventor
제레미 제이. 슈랄
스티븐 에이치. 군터
크리쉬나칸트 브이. 시스틀라
라이언 디. 웰스
숀 엠. 콘라드
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20150063543A publication Critical patent/KR20150063543A/ko
Application granted granted Critical
Publication of KR101748747B1 publication Critical patent/KR101748747B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • Y02B60/1239
    • 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)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

일 실시예에서, 본 발명은, 각각 명령어들을 실행하는 복수의 코어들, 각각 액티브 코어들의 주어진 수의 함수인 최대 피크 동작 주파수 값들을 저장하는 불휘발성 스토리지, 각각 최대 피크 동작 주파수 값들 중 하나 또는 최대 피크 동작 주파수 값보다 작은 구성가능한 클립 주파수 값에 대응하는 주파수 제한들을 저장하는 구성 스토리지를 갖는 프로세서를 포함한다. 차례로, 전력 제어기는 코어들의 동작 주파수를 구성 스토리지로부터 취득되는 대응 주파수 제한으로 제한하도록 구성된다. 기타 실시예들이 설명되고 청구된다.

Description

프로세서의 구성가능한 피크 성능 제한들의 제어{CONTROLLING CONFIGURABLE PEAK PERFORMANCE LIMITS OF A PROCESSOR}
반도체 처리 및 로직 설계의 진보들은 집적 회로 디바이스들에 존재할 수 있는 로직의 양의 증가를 가능하게 해주었다. 그 결과, 컴퓨터 시스템 구성들은 시스템 내의 단일 또는 다중 집적 회로들로부터, 개별 집적 회로들 상의 다중 하드웨어 스레드들, 다중 코어들, 다중 디바이스들, 및/또는 완전한 시스템들로 발전했다. 추가로, 집적 회로들의 밀도가 증가함에 따라, (내장형 시스템으로부터 서버에 이르기까지의) 컴퓨팅 시스템들에 대한 전력 요건들도 급등했다. 또한, 소프트웨어 비효율성들(software inefficiencies) 및 그것의 하드웨어 요건들, 또한, 컴퓨팅 디바이스 에너지 소비의 증가를 야기했다. 사실, 일부 연구에 따르면, 컴퓨팅 디바이스들은 미국과 같은 국가의 전체 전력 공급의 상당히 큰 비율을 소비한다. 그 결과, 집적 회로들과 관련된 에너지 효율 및 보존이 절대적으로 필요하다. 서버들, 데스크탑 컴퓨터들, 노트북들, 울트라북들TM, 태블릿들, 모바일 전화들, 프로세서들, 내장형 시스템들 등이 (전형적인 컴퓨터, 자동차들 및 텔레비젼들에 포함되는 것으로부터 바이오테크놀러지에 이르기까지) 점점 더 많이 보급되어 감에 따라, 이러한 요구들은 증가할 것이다.
일부 소프트웨어 애플리케이션들에서, 컴퓨터 클러스터의 노드들에 걸리는 개별 프로세서 성능 가변성은 소프트웨어 오류들을 초래할 수 있다. 동시에, 현대 프로세서들의 본성은, 전력 또는 열 제약들과 같은 환경적 용량을 이용하고, 이러한 제한들 중 하나 이상이 도달될 때까지 프로세서 클럭 주파수를 증가시키는 것이다. 다이-투-다이 실리콘 변화에 의해, 프로세서 동작은 일반적으로 비-결정론적(non-deterministic)이다. 노드들에 걸리는 성능을 정상화하려고 하는 많은 사용자들을 위한 솔루션은, 프로세서의 클럭 주파수들이 증가되는 기회주의적 터보 모드 동작을 전체적으로 디스에이블하는 것이다. 이는 노드들에 걸리는 동작의 결정론을 보다 용이하게 보장할 수 있지만, 상당량의 성능이 손실된다.
도 1은 본 발명의 일 실시예에 따른 시스템의 블럭도이다.
도 2는 본 발명의 일 실시예에 따른 구성가능한 피크 성능 제한 제어 메커니즘을 도시하는 블럭도이다.
도 3은 본 발명의 일 실시예에 따라 프로세서 주파수를 다이나믹하게 제한하는 방법의 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 프로세서의 블럭도이다.
도 5는 본 발명의 일 실시예에 따른 프로세서의 블럭도이다.
도 6은 본 발명의 일 실시예에 따른 시스템의 블럭도이다.
다양한 실시예들에서, 프로세서의 피크 성능 레벨들은 통상적으로 그와 관련되는 가변성없이 일부 터보 모드 성능 업사이드(upside)를 달성하는 방식으로 제어될 수 있다. 일반적으로, 프로세서 터보 모드 동작은, 예산이 사용가능할 때, 보장된 최대 주파수보다 더 큰 주파수에서 프로세서의 하나 이상의 도메인들이 동작할 수 있도록, 패키지 레벨 전력 예산 아래에서 성능을 최대화하는 제어 알고리즘들로 구성된다. 실시예들은 특히 2개 시나리오들에 적용될 수 있다: 애플리케이션들이 일반적으로 저 전력 레벨들로 실행할 때 프로세서 코어 주파수를 최대화하는 것; 및 애플리케이션들이 낮은 코어 활용도로 실행할 때(예를 들어 멀티코어 프로세서의 8개 코어들 중 4개가 액티브임) 프로세서 코어 주파수를 최대화함.
다량의 제조시, 대부분의 프로세스들은, 특정 애플리케이션들이 실행중일 때 플랫폼 전력 전달 제약들을 쉽게 초과할 수 있는 피크 주파수들(즉, 특정 실리콘 기반 프로세서에 대한 최대 피크 주파수)에서 실행될 수 있다. 이는 자연적으로 소프트웨어 실행 시간의 비-결정론을 생성한다. 그러나, 프로세서 애플리케이션들이 더 낮은 코어 활용도로 실행중일 때, 프로세서 패키지의 최대 가능한 전력 소비는 여전히 전압 레귤레이터, 전원 및 벽 전력 전달 제약들 아래이기 때문에, 이들을 더 높은 클럭 주파수들에서 실행시키고 여전히 결정론을 보장하는 것이 이론적으로는 가능하다. 따라서, 실시예들은 기회주의적 프로세서 동작을 이러한 제약들 중 임의의 것 아래의 레벨들로 제한하는 기술들을 제공한다.
이제 도 1을 참조하면, 본 발명의 일 실시예에 따른 시스템의 일부의 블럭도가 도시된다. 도 1에 도시된 바와 같이, 시스템(100)은 멀티코어 프로세서로서 도시되는 프로세서(110)를 포함하여, 다양한 컴포넌트들을 포함할 수 있다. 프로세서(110)는, 제1 전압 변환을 수행하여 1차 조정 전압(primary regulated voltage)을 프로세서(110)에 제공할 수 있는 외부 전압 레귤레이터(160)를 통해 전원(150)에 연결될 수 있다.
도시된 바와 같이, 프로세서(110)는 복수의 코어들(120a-120n)을 포함하는 싱글 다이 프로세서 소켓(single die processor socket)일 수 있다. 또한, 각각의 코어는 전압에 대한 매우 미세한 제어를 허용하고, 그에 따라 각각의 개별 코어의 전력 및 성능에 대해서도 매우 미세한 제어를 허용하는, 개별 전압 레귤레이터(125a-125n)에 연관될 수 있다. 이와 같이, 각각의 코어는 독립적인 전압 및 주파수에서 동작할 수 있어, 큰 유연성을 가능하게 하고, 전력 소비와 성능의 균형을 맞추는 폭넓은 기회들을 제공한다.
여전히 도 1을 참조하면, 입출력 인터페이스(132), 다른 인터페이스(134) 및 통합 메모리 컨트롤러(136)를 포함하는 추가적인 컴포넌트들이 프로세서 내에 존재할 수 있다. 도시된 바와 같이, 이들 컴포넌트 각각은 다른 통합 전압 레귤레이터(125x)에 의해 전력을 공급받을 수 있다. 일 실시예에서, 인터페이스(132)는 인텔사의 QPI(Quick Path Interconnect) 프로토콜에 따를 수 있는데, 이는 물리 계층, 링크 계층, 및 프로토콜 계층을 포함하는 다중 계층들을 포함하는 캐시 코히어런트 프로토콜에서의 PtP(Point-to-Point) 링크를 준비한다. 결국, 인터페이스(134)는 , 예를 들어, PCI ExpressTM Specification Base Specification version 2.0(2007년 1월 17일 공개됨)인, PCIeTM(Peripheral Component Interconnect Express) 사양에 따를 수 있다.
프로세서(110)에 관하여 전력 관리 동작들을 수행하기 위한 하드웨어, 소프트웨어 및/또는 펌웨어를 포함할 수 있는 PCU(Power Control Unit)(138)가 또한 도시된다. 다양한 실시예들에서, PCU(138)는 지원되는 레벨 아래의 프로세서 주파수 및/또는 기타 동작 파라미터들을 본 발명의 일 실시예에 따라서 다이나믹하게 구성가능한 제한으로 제한하는 로직을 포함할 수 있다. 또한, PCU(138)는 전용 인터페이스를 통해 외부 전압 레귤레이터(160)에 연결될 수 있다. 이러한 방식으로, PCU(138)는 요청받은 조정된 전압을 프로세서에 제공할 것을 전압 레귤레이터에 명령할 수 있다.
도시의 편의상 보여지진 않았지만, 추가의 언코어 로직(uncore logic), 및 내부 메모리(예를 들어, 1 레벨 이상의 캐시 메모리 계층구조 등) 등과 같은 기타 컴포넌트들과 같은 추가의 컴포넌트들이 프로세서(110) 내에 존재할 수 있음을 이해하자. 또한, 도 1의 구현에서는 통합 전압 레귤레이터와 함께 도시되지만, 실시예들이 이에 제한되는 것은 아니다.
이하의 실시예들은 컴퓨팅 플랫폼 또는 프로세서에서와 같이, 특정 집적 회로들에서의 에너지 보존 및 에너지 효율을 참조하여 설명되지만, 다른 실시예들이 다른 유형의 집적 회로들 및 로직 디바이스들에 적용될 수 있다. 본 명세서에 설명되는 실시예들의 유사한 기술들 및 교시들은, 더 나은 에너지 효율 및 에너지 보존으로부터 또한 이익을 얻을 수 있는 다른 타입의 회로들 또는 반도체 디바이스들에 적용될 수 있다. 예를 들어, 개시되는 실시예들은, 임의의 특정한 타입의 컴퓨터 시스템들에 제한되는 것이 아니고, 핸드헬드 디바이스들, SoC들(Systems on Chips) 및 내장된 애플리케이션들과 같은 다른 디바이스들에서도 사용될 수 있다. 핸드헬드 디바이스들의 일부 예는 셀룰러 폰들, 인터넷 프로토콜 디바이스들, 디지털 카메라들, PDA들(Personal Digital Assistants) 및 핸드헬드 PC들을 포함한다. 내장형 애플리케이션들은 전형적으로 마이크로컨트롤러, DSP(Digital Signal Processor), 네트워크 컴퓨터들(NetPC), 셋탑 박스들, 네트워크 허브들, WAN(Wide Area Network) 스위치들, 또는 아래에 교시되는 기능들 및 동작들을 수행할 수 있는 임의의 기타 시스템을 포함한다. 더욱이, 본 명세서에 설명되는 장치들, 방법들 및 시스템들은 물리적 컴퓨팅 디바이스들에 제한되는 것이 아니라, 에너지 보존 및 효율을 위한 소프트웨어 최적화에들도 관련될 수 있다. 이하의 설명에서 쉽게 명백해지는 바와 같이, (하드웨어, 펌웨어, 소프트웨어 또는 그들의 조합을 참조하여) 본 명세서에 설명되는 방법들, 장치들 및 시스템들의 실시예들은 US 경제의 큰 부분을 포괄하는 제품들에서의 전력 보존 및 에너지 효율을 위한 것과 같이, '녹색 기술(green technology)'의 미래에 필수적인 것이다.
본 명세서에 설명되는 구성가능한 주파수 및/또는 기타 동작 파라미터 제어는, ACPI(Advanced Configuration and Platform Interface) 표준(예를 들어, 2006년 10월 10일에 공개된 Rev.3.0b)과 같은 OS(Operating System)-기반 메커니즘에 독립적이고 상보적일 수 있다는 것에 유의한다. ACPI에 따르면, 프로세서는 다양한 성능 상태들 또는 레벨들, 즉 P0 내지 PN에서 동작할 수 있다. 일반적으로, P1 성능 상태는 OS에 의해 요청될 수 있는 최고 보장된 성능 상태에 대응할 수 있다. 이러한 P1 상태에 더하여, OS는 더 높은 성능 상태, 즉 P0 상태를 더 요청할 수 있다. 따라서, 이러한 P0 상태는 기회주의적(opportunistic) 또는 터보 모드 상태일 수 있는데, 여기에서는 전력 및/또는 열 예산이 사용가능할 때, 프로세서 하드웨어가 프로세서 또는 그것의 적어도 일부를 보장된 주파수보다 높은 주파수에서 동작하도록 구성할 수 있다. 많은 구현들에서, 프로세서는 제조 동안 특정 프로세서에 융합되거나 아니면 기입됨에 따라, 그 프로세서의 최대 피크 주파수를 초과하는, P1 주파수라고도 하는, 보장된 최대 주파수 위의 다수의 소위 빈 주파수들(bin frequencies)을 포함할 수 있다. 또한, ACPI에 따르면, 프로세서는 다양한 전력 상태들 또는 레벨들에서 동작할 수 있다. 전력 상태에 관하여, ACPI는 일반적으로 C 상태들, 즉 C0, C1 내지 Cn 상태들이라 하는 상이한 전력 소비 상태들을 특정한다. 코어가 액티브일 때는, C0 상태에서 실행되며, 코어가 아이들 상태일 때는, 코어 논-제로 C-상태(예를 들어, C1-C6 상태)라고도 하는 코어 저 전력 상태에 놓일 수 있으며, 각각의 C 상태는 (C6이 C1보다 더 깊은 저 전력 상태에 있는 등이 되도록) 저 전력 소비 레벨에 있다.
실시예들은 소프트웨어 엔티티와 같은 엔티티가 프로세서 피크 주파수 레벨을 액티브 코어들의 수의 함수로서 제어하는 인터페이스를 제공한다. 기본적으로, 프로세서는 실리콘의 최대 주파수 능력까지의 주파수들에서 동작하는 액티브 코어들과 함께 동작하도록 구성되고, 여기서 이러한 최대 피크 주파수는 (주어진 수의 액티브 코어들에 대해 주어진 최대 피크 주파수와 같은) 하나 이상의 융합된 값들로서 프로세서에 구성된다. 통상적으로, 이러한 최대 피크 주파수는, 프로세서가 ACPI P0 상태에서 동작할 것이 요청될 때 최고 터보 모드에서 사용가능한 것에 대응한다. 이러한 최대 주파수는 따라서 (ACPI P1 상태와 같은) 보장된 최대 주파수보다 더 높다. 본 발명의 일 실시예를 사용하면, 더 낮은 코어 당 주파수 제약들이 이러한 알고리즘들에 의해 사용되게 함으로써, 주파수 제어 알고리즘들에 사용가능한 최대 피크 주파수가 감소되거나 또는 클리핑될(clipped) 수 있다. 일 실시예에서는, BIOS(Basic Input/Output System) 구성 코드와 같은 소프트웨어가, 본 명세서에서는 클립 또는 제약 주파수라고도 하는 이러한 클립 값들을 설정할 수 있게 하는 인터페이스가 제공될 수 있다. 본 명세서에 설명되는 특정 예는 코어 주파수 제어를 통한 코어 도메인 제어에 관한 것이지만, 그래픽 도메인, 상호접속 도메인, 언코어 도메인 등과 같은 프로세서의 기타 도메인들을 제어하는데 유사한 기술들이 사용될 수 있다는 점을 이해하자.
사용자가 작업부하의 특징들의 사전 지식을 갖고 있다고 가정하면, 실행될 작업부하의 타입의 함수로서 업데이트될 수 있는 구성가능한 코어 당 주파수 제한들이 제공될 수 있다. 따라서, 특정 애플리케이션들에 대해서, 고객은 이러한 값들을 해당 애플리케이션의 사전 지식에 기초하여 구성할 수 있다. 일 실시예에서는, (최대 피크 주파수를 위해 프로세서가 구성한 융합된 값들보다 통상적으로 낮은 값들의 제약들의 세트인) 이러한 최대 터보 주파수 제약들이 실행 시간에 다이나믹하게 구성될 수 있다.
이러한 제어 인터페이스는 모든 작업부하들을 일반적으로 커버하는데 사용될 수 있고, 이러한 작업 인터페이스가 실행할 작업부하들의 타입을 사용자가 사전에 예측할 수 있다고 가정하면, 이는 피크 성능 레벨들을 자동으로 캘리브레이트하는데도 사용될 수 있다. 이러한 캘리브레이션을 실행하기 위해서, 소프트웨어는 작업부하 묶음(workload suite)을 실행하고 터보 주파수 제약들을 스위프(sweep)하여 오류 표면을 결정할 수 있다. 사용자들은, 전력 또는 열 제약의 검출시 인터럽트들을 시그널링하는 특징을 채택함으로써 검색 프로세스 속도를 올릴 수 있다. 이러한 경우들에서, 전력 또는 열 제한들 위의 단일 열람(excursion)으로, 사용자는 소프트웨어가 열람없이 실행할 때까지 해당 피크 코어 당 주파수 제약들을 다이얼 백(dial back)할 수 있다.
이제 도 2를 참조하면, 본 발명의 일 실시예에 따른 구성가능한 피크 성능 제한 제어 메커니즘을 도시하는 블럭도가 도시된다. 도 2에 도시되어 있는 바와 같이, 로직(200)은 프로세서의 일부일 수 있으며, 보다 구체적으로는 PCU의 로직 내에 존재할 수 있다. 일반적으로, 로직(200)은, 프로세서의 코어들이 동작할 수 있는 최대 동작 주파수를 결정하고, 이러한 최대 주파수를 프로세서를 위해 제조시 융합된 값들 아래로 제한하도록 동작한다. 따라서, 도 2에 도시된 바와 같이, 프로세서는 피크 주파수 능력 스토리지(210)를 포함한다. 일 실시예에서, 이러한 스토리지는 멀티코어 프로세서의 주어진 수의 액티브 코어들의 함수인 및/또는 다른 방식으로 이에 의존하는 최대 동작 주파수에 대응하는 피크 능력 정보를 저장할 수 있다. 도시된 예에서는, N 코어 프로세서에 대해, 주어진 수의 코어들이 액티브일 때 각각의 값이 특정 실리콘-기반의 프로세서에 대해 가능한 최대 동작 주파수에 대응하는 N개 값들이 제공된다. 일 실시예에서 스토리지(210)에 저장되는 능력 정보는, 반도체 다이의 제조 동안 기입되거나 융합되는 것으로서 프로세서의 퓨즈들 또는 기타 불휘발성 스토리지로부터 취득될 수 있다.
구성가능한 사용자-제어된 값들을 이러한 능력 또는 최대 피크 주파수 값들 아래로 하기 위해서, 구성가능한 주파수 제한 값들의 세트가 스토리지(220)에 저장될 수 있다. 일 실시예에서는, N개 구성가능한 값들이 있을 수 있고, 각각은, 액티브 코어들의 수의 함수로서, 구성가능한 클립 또는 제약 주파수에 대응한다. 스토리지(210) 및 스토리지(220) 양자 모두에 존재하는 주파수들의 세트들에 대해서는, 통상적으로 더 적은 수의 액티브 코어들로 더 높은 동작 주파수가 가능하다는 점에 주의하자. 따라서, 하나의 코어만이 액티브일 때, 동작 주파수는 N개 코어들이 액티브일 때보다 더 높을 수 있다. 일 실시예에서, 이러한 제약 주파수는, BIOS 초기화 동안 기입되는 구성 값들, 예를 들어, 프로세서 상에서 실행될 작업부하의 사전 지식에 기반하는, 사용자-제어된 값들 등과 같은 것을 포함하여, 여러가지 방식들로 취득될 수 있다. 일반적으로, 이러한 구성가능한 제한 값들은 융합된 값들 아래의 레벨들로 설정될 수 있다.
도시된 바와 같이, 로직(200)은, 이러한 구성가능한 제약 주파수 제한들 각각과 대응하는 피크 주파수 능력 사이에서 최소 연산(min operation)을 수행하는 최소 연산기(230)를 포함하여, 대응하는 주어진 수의 액티브 코어들에 대한 2개 값들 각각 중 더 적은 것이, 본 명세서에서 분해된 주파수 제한 스토리지라고도 하는 구성 스토리지(240)의 대응 필드에 저장될 수 있다. 하나의 예로서, 이러한 구성 스토리지는, 본 명세서 분해된 주파수 제한이라고도 하는 터보 비율 제한 값을 각각의 가능한 수의 액티브 코어들에 대해 저장하며, PCU에 사용가능한 구성 레지스터일 수 있다.
이제 표 1을 참조하면, 본 발명의 일 실시예에 따라 분해된 주파수 제한들의 세트를 저장하는 일 예의 구성 레지스터 배치가 도시된다. 도시된 바와 같이, 이 레지스터의 각 필드는 이러한 값들의 세트의 분해된 값을 저장할 수 있다.
Figure pct00001
예를 들어, PCU의 제어 루프의 동작 동안, 및 액티브 코어들의 현재 수에 기초하여, 구성 스토리지(240)에 저장된 이러한 값들 중 주어진 하나가, 액티브 코어들이 동작할 수 있는 최대 터보 모드 주파수가 될 분해된 주파수 제한으로서 선택될 수 있다. 구성가능한 주파수 제한들로 인해, 이러한 최대 터보 모드 주파수는 능력 스토리지(210)에 저장된 정보에 따른 최대 피크 주파수보다 더 낮을 수 있다는 점에 주의하자. 예를 들어, N개 액티브 코어들에 대해, 스토리지(210)는 (일 예로서) 3.0 기가헤르츠(GHz)의 최대 피크 주파수를 저장할 수 있는 반면, 대신에 구성 스토리지(240)는 2.5 GHz 또는 최대 피크 주파수보다 적은 다른 주파수의 N개 액티브 코어들에 대한 분해된 주파수 제한을 저장할 수 있다. 물론 상이한 구현들에서 상이한 주파수들이 가능하다.
멀티코어 프로세서의 3개 코어들이 액티브라고 가정하자. 이 경우, 3개 액티브 코어 주파수 제한 및 능력 스토리지(210)에 프로그램된 주파수 제한에 대응하여 스토리지(220)에 저장된 값의 최소가 결정되고, 구성 스토리지(240)에 저장되어, 이러한 액티브 코어들의 동작 주파수를 이 최소 값으로 제한하거나 클립하는 PCU 제어 동작들에 사용된다. 다음으로, 코어, 시스템 소프트웨어 또는 기타 엔티티가 (P0 상태와 같이) 더 높은 동작 주파수와 관련되는 성능 상태를 요청한다고 가정하자. 이 경우, PCU는, 이러한 요청된 주파수를 허용하지 않고, 대신에 액티브 수의 코어들에 대해 구성 스토리지(240)에 저장된 분해된 값을 사용하여 가능한 것으로 성능을 제한한다.
도 2의 실시예에서는 이러한 하이 레벨로 도시되지만, 본 발명의 범위는 이러한 점에 제한되는 것이 아니라는 점을 이해하자. 예를 들어, 프로세서의 액티브 레벨(또는 하나 이상의 도메인들)과 구성가능한 클립 파라미터의 함수인 최대 피크 동작 파라미터 값의 최소가 선택되어 프로세서의 동작 파라미터를 제한하는데 사용될 수 있도록, 주파수 대신에 프로세서의 다른 구성가능한 파라미터가 제어될 수 있다. 주파수 이외의 예들로서, 이러한 구성가능한 파라미터들은, 명령어 실행 속도, 퇴출 속도 또는 프로세서의 전력 제한에 도달하지 않는 구성가능한 값 내에서 성능을 최대화하는 기타 파라미터를 포함할 수 있다.
또한, 도 2에 도시된 표현은 논리적 관점이라는 점을 이해하자. 즉, 일부 실시예들에서는 이러한 3개의 상이한 스토리지들 및 최소 연산기를 준비하기 보다는 오히려 단일 구성 스토리지만이 존재하고, BIOS 실행 동안, 실리콘-구성된 값들은 더 낮은 값들, 즉 불휘발성 스토리지로부터 취득되는 융합된 값들을 이에 따라 덮어쓰는 BIOS 또는 사용자 설정 구성가능한 제약 주파수 제한들로 업데이트될 수 있다.
이제 도 3을 참조하면, 본 발명의 일 실시예에 따라 프로세서 주파수를 다이나믹하게 제한하는 방법의 흐름도가 도시된다. 도 3에 도시된 바와 같이, 방법(300)은 주파수 제한 제어 로직과 같은 PCU의 로직 내에서 수행될 수 있다. 그러나, 다른 실시예들에서 이러한 로직은 독립형 로직으로서 또는 프로세서의 다른 부분의 일부로서 구현될 수 있다는 점을 이해하자. 도시된 바와 같이, 방법(300)은 소프트웨어 엔티티로부터 구성가능한 주파수 제한 값들을 수신하는 것에 의해 시작한다(블럭 310). 예를 들어, 프로세서 초기화시 로직은 이러한 값들을 BIOS로부터 수신할 수 있다. 또는 이러한 값들은, 예를 들어, 자신의 작업부하의 사전 지식이 사용가능한 특정 애플리케이션의 실행 이전인, 프로세서 실행시간 동안 다이나믹하게 수신될 수 있다. 일 실시예에서, 구성가능한 주파수 제한 값은 액티브 코어들의 각 가능한 조합에 대해 제공될 수 있다. N개 코어들을 갖는 프로세서에 대해서는, N개의 이러한 값들이 제공될 수 있다. 통상적으로 이러한 값들 중 다수 또는 모두는 제약 값들일 수 있어, 프로세서에 융합되는 최대 피크 주파수보다 더 낮게 된다.
여전히 도 3을 참조하면, 이러한 구성가능한 주파수 제한 값들 중 하나의 값 및 대응하는 최대 피크 주파수 값 중 낮은 값이 구성 스토리지의 각 필드에 저장될 수 있는 블럭 320으로 제어가 넘어간다. 일 예로서, 이러한 구성 스토리지는 프로세서의 불휘발성 스토리지로부터 취득되는 최대 피크 주파수 값들을 초기에 저장할 수 있다. 따라서, 블럭 320에서의 이러한 동작은 이들 최대 피크 주파수 값들을 구성가능한 주파수 제한 값들로 덮어쓰는 역할을 할 수 있다. 다른 구현들에서는 이러한 분해된 값들을 취득하고 이들을 구성 스토리지에 저장하는 최소 연산이 수행된다. 따라서, 이 점에서 구성 스토리지는 정상 동작 동안 액세스될 준비가 되어 있다.
여전히 도 3을 참조하면, 나머지 동작들은, 결국 동작의 주어진 코어 주파수와 관련되는 특정 성능 레벨로 주어진 코어를 실행시키는 스레드에 대한 요청을 OS, 드라이버 또는 기타 등등과 같은 엔티티가 발행하는 정상 프로세서 동작과 관련된다.
그러한 요청을 취급하는 일부로서, 로직은 프로세서에서 액티브 코어들의 수를 결정할 수 있다(블럭 340). 그리고, 마름모 350에서는, N-코어 분해된 값이 성능 요청에 대한 값, 즉 이러한 요청과 관련된 동작 주파수보다 작은지가 판정될 수 있다. 이러한 성능 요청 값은 엔티티로부터 직접 수신될 수 있거나, 또는 이는 성능 요청에 기초하는 룩업 테이블에 대한 액세스를 통해 취득될 수 있다는 점에 주의하자. 마름모 350의 판정이 긍정이면, 주어진 도메인 동작 주파수(예를 들어, 특정 코어 또는 보다 글로벌하게는 전체 코어 도메인)는 이러한 분해된 주파수 값으로 제한될 수 있다(블럭 360). 이러한 제한된 주파수는, 전력 및/또는 열 제한들이 제한되지 않는 레벨로 프로세서에 대한 터보 모드 동작을 여전히 준비할 수 있어, 애플리케이션 또는 기타 작업부하의 결정론적 동작을 가능하게 한다. 이와 같이, 컴퓨터 클러스터의 다수 독립적 시스템들은 각각 결정론적 방식으로 동일한 애플리케이션을 실행할 수 있다.
여전히 도 3을 참조하면, 이와 달리 대응 분해된 값이 성능 요청보다 작지 않으면, 도메인 동작 주파수가 요청된 성능 레벨로 인에이블될 수 있는 블럭 370으로 제어가 넘어간다. 도 3의 실시예에서는 이러한 하이 레벨로 도시되지만, 본 발명의 범위가 이러한 점에 제한되는 것은 아니라는 점을 이해하자.
실시예들은 다양한 시장들에 대해 서버 프로세서들, 데스크탑 프로세서들, 모바일 프로세서들 등을 포함하는 프로세서들에 구현될 수 있다. 이제 도 4를 참조하면, 본 발명의 일 실시예에 따른 프로세서의 블럭도가 도시된다. 도 4에 도시된 바와 같이, 프로세서(400)는 복수의 코어들(410a-410n)을 포함하는 멀티코어 프로세서일 수 있다. 일 실시예에서, 각각의 그러한 코어는, 독립적인 전력 도메인의 것일 수 있으며, 작업부하에 기초하여 액티브 상태들 및/또는 터보 모드들에 진입하고 이로부터 벗어나도록 구성될 수 있다. 다양한 코어들은 다양한 컴포넌트들을 포함하는 시스템 에이전트 또는 언코어(420)에 상호접속(415)을 통해 연결될 수 있다. 도시된 바와 같이, 언코어(420)는 최종 레벨 캐시일 수 있는 공유 캐시(430)를 포함할 수 있다. 또한, 언코어는 통합 메모리 컨트롤러(440), 다양한 인터페이스들(450) 및 전력 제어 유닛(455)을 포함할 수 있다.
다양한 실시예들에서, 전력 제어 유닛(455)은 본 발명의 일 실시예에 따른 주파수 제한 제어 로직(459)을 포함할 수 있다. 위에 설명된 바와 같이, 이러한 로직은, 최대 동작 주파수들을 최대 피크 주파수 값들보다 더 낮은 분해된 값들로 다이나믹하게 제한하는 역할을 한다.
도 4를 더 참조하면, 프로세서(400)는, 예를 들어, 메모리 버스를 통해 시스템 메모리(460)와 통신할 수 있다. 또한, 인터페이스들(450)에 의해, 주변 디바이스들, 대용량 스토리지 등과 같은 다양한 오프-칩 컴포넌트들에 대한 접속이 이루어질 수 있다. 도 4의 실시예에서 이러한 특정 구현이 도시되지만, 본 발명의 범위가 이러한 점에서 제한되는 것은 아니다.
이제 도 5를 참조하면, 본 발명의 다른 실시예에 따른 멀티-도메인 프로세서의 블럭도가 도시된다. 도 5의 실시예에 도시된 바와 같이, 프로세서(500)는 다수의 도메인들을 포함한다. 구체적으로, 코어 도메인(510)은 복수의 코어들(5100-510n)을 포함할 수 있고, 그래픽 도메인(520)은 하나 이상의 그래픽 엔진들을 포함할 수 있으며, 시스템 에이전트 도메인(550)이 더 존재할 수 있다. 일부 실시예들에서, 시스템 에이전트 도메인(550)은, 코어 도메인보다 독립적인 주파수에서 실행될 수 있으며, 전력 제어 이벤트들 및 전력 관리를 취급하도록 항상 파워 온 상태를 유지할 수 있어, 도메인들(510 및 520)이 다이나믹하게 고 전력 및 저 전력 상태들로 진입하고 그로부터 벗어나도록 제어될 수 있다. 도메인들(510 및 520) 각각은 상이한 전압 및/또는 전력에서 동작할 수 있다. 주의할 점은, 단지 3개의 도메인들로 도시되지만, 본 발명의 범위가 이러한 점에서 제한되는 것은 아니고, 다른 실시예들에서는 추가적인 도메인들이 존재할 수 있다는 점을 이해하자. 예를 들어, 각각 적어도 하나의 코어를 포함하는 다수 코어 도메인들이 존재할 수 있다.
일반적으로, 각각의 코어(510)는 다양한 실행 유닛들 외에도 로우 레벨 캐시들 및 추가적인 처리 엘리먼트들을 더 포함할 수 있다. 차례로, 다양한 코어들은 서로 연결될 수 있고, LLC(Last Level Cache)(5400-540n)의 복수의 유닛들로 형성되는 공유 캐시 메모리에 연결될 수 있다. 다양한 실시예들에서, LLC(540)는 코어들 및 그래픽 엔진 뿐만 아니라 다양한 미디어 처리 회로 사이에서 공유될 수 있다. 도시된 바와 같이, 링 상호접속(530)은 이에 따라 코어들을 함께 연결하며, 코어들, 그래픽 도메인(520) 및 시스템 에이전트 회로(550) 사이의 상호접속을 제공한다. 일 실시예에서, 상호접속(530)은 코어 도메인의 일부일 수 있다. 그러나, 다른 실시예들에서, 링 상호접속부는 자기 자신의 도메인의 것일 수 있다.
더욱 도시된 바와 같이, 시스템 에이전트 도메인(550)은 관련된 디스플레이의 제어 및 그에 대한 인터페이스를 제공할 수 있는 디스플레이 컨트롤러(552)를 포함할 수 있다. 더욱 도시된 바와 같이, 시스템 에이전트 도메인(550)은, 본 명세서에 설명되는 동작 주파수의 구성가능한 다이나믹 제한을 가능하게 하는 본 발명의 일 실시예에 따른 주파수 제어 로직(559)을 포함할 수 있는 전력 제어 유닛(555)을 포함할 수 있다. 다양한 실시예들에서, 이러한 로직은, 도 2에서와 같이 구성될 수 있고 및 도 3에서 위에 설명된 알고리즘들을 실행할 수 있다.
도 5에 더욱 도시된 바와 같이, 프로세서(500)는, DRAM(Dynamic Random Access Memory)과 같은 시스템 메모리에 대한 인터페이스를 준비할 수 있는 IMC(Integrated Memory Controller)(570)를 더 포함할 수 있다. 다수의 인터페이스들(5800-580n)은 프로세서와 다른 회로 사이의 상호접속을 가능하게 하기 위해 존재할 수 있다. 예를 들어, 일 실시예에서는, 적어도 하나의 DMI(Direct Media Interface) 인터페이스 뿐만 아니라 하나 이상의 PCI ExpressTM(PCIeTM)(Peripheral Component Interconnect Express) 인터페이스들이 제공될 수 있다. 더욱이, 추가적인 프로세서들 또는 기타 회로와 같은 기타 에이전트들 사이의 통신을 준비하도록, Intel사의 QPI(Quick Path Interconnect) 프로토콜에 따른 하나 이상의 인터페이스들이 또한 제공될 수 있다. 도 5의 실시예에서 이러한 하이 레벨로 도시되지만, 본 발명의 범위가 이러한 점에서 제한되는 것은 아니라는 점을 이해하자.
실시예들은 여러 상이한 시스템 타입들로 구현될 수 있다. 이제 도 6을 참조하면, 본 발명의 일 실시예에 따른 시스템의 블럭도가 도시된다. 도 6에 도시된 바와 같이, 멀티프로세서 시스템(600)은, 포인트-투-포인트 상호접속 시스템이며, 포인트-투-포인트 상호접속(650)을 통해 연결되는 제1 프로세서(670) 및 제2 프로세서(680)를 포함한다. 도 6에 도시된 바와 같이, 프로세서들(670 및 680) 각각은, 프로세서들에 잠재적으로 더 많은 코어들이 존재할 수 있더라도, 제1 및 제2 프로세서 코어들(즉, 프로세서 코어들(674a 및 674b) 및 프로세서 코어들(684a 및 684b))을 포함하는 멀티코어 프로세서들일 수 있다. 각각의 프로세서들은, 본 명세서에 설명된 바와 같이, 소프트웨어 또는 기타 엔티티의 제어에 응답하여 주파수 제한을 수행하는 PCU 또는 기타 로직을 포함할 수 있다.
여전히 도 6을 참조하면, 제1 프로세서(670)는 MCH(Memory Controller Hub)(672) 및 P-P(Point-to-Point) 인터페이스들(676 및 678)을 더 포함한다. 유사하게, 제2 프로세서(680)는 MCH(682) 및 P-P 인터페이스들(686 및 688)을 포함한다. 도 6에 도시된 바와 같이, MCH들(672와 682)은 프로세서들을 각 메모리들, 즉 메모리(632) 및 메모리(634)에 연결하고, 이는 각 프로세서들에 로컬하게 첨부되는 시스템 메모리의 일부(예를 들어, DRAM)일 수 있다. 제1 프로세서(670) 및 제2 프로세서(680)는 P-P 상호접속부들(662 및 664)을 통해 칩셋(690)에 각각 연결될 수 있다. 도 6에 도시된 바와 같이, 칩셋(690)은 P-P 인터페이스들(694 및 698)을 포함한다.
또한, 칩셋(690)은, P-P 상호접속(639)에 의해, 칩셋(690)을 고성능 그래픽 엔진(638)과 연결하는 인터페이스(692)를 포함한다. 차례로, 칩셋(690)은 인터페이스(696)를 통해 제1 버스(616)에 연결될 수 있다. 도 6에 도시된 바와 같이, 다양한 입/출력(I/O) 디바이스(614)는, 제1 버스(616)를 제2 버스(620)에 연결하는 버스 브릿지(618)와 함께, 제1 버스(616)에 연결될 수 있다. 예를 들어, 키보드/마우스(622), 통신 디바이스들(626), 및 일 실시예에서 코드(630)를 포함할 수 있는 디스크 드라이브 또는 기타 대용량 스토리지 디바이스와 같은 데이터 스토리지 유닛(628)을 포함하는 다양한 디바이스들이 제2 버스(620)에 연결될 수 있다. 또한, 오디오 I/O(624)가 제2 버스(620)에 연결될 수 있다. 스마트 셀룰러 전화, 태블릿 컴퓨터, 넷북, UltrabookTM 등과 같은 모바일 디바이스들을 포함하는 기타 타입들의 시스템들에 실시예들이 통합될 수 있다.
실시예들은 여러 상이한 타입의 시스템들에서 사용될 수 있다. 예를 들어, 일 실시예에서는 본 명세서에 설명되는 다양한 방법들 및 기술들을 수행하기 위해 통신 디바이스가 배치될 수 있다. 물론, 본 발명의 범위가 통신 디바이스에 제한되는 것은 아니며, 대신에 다른 실시예들은 명령어들을 처리하는 기타 타입들의 장치들, 또는 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 디바이스로 하여금 본 명세서에 설명되는 하나 이상의 방법 및 기술을 수행하게 하는 명령어들을 포함하는 하나 이상의 머신 판독가능한 매체에 관련될 수 있다.
실시예들은 코드로 구현될 수 있으며, 명령어들을 수행하도록 시스템을 프로그램하는데 사용될 수 있는 명령어들을 저장하고 있는 비-일시적 스토리지 매체에 저장될 수 있다. 이러한 스토리지 매체는, 플로피 디스크들, 광학 디스크들, SSD들(Solid State Drives), CD-ROM들(Compact Disk Read-Only Memories), CD-RW들(Compact Disk ReWritables), 및 광자기 디스크들(magneto-optical disks)를 포함하는 임의 타입의 디스크, ROM들(Read-Only Memories), DRAM들(Dynamic Random Access Memories) 및 SRAM들(Static Random Access Memories)과 같은 RAM들(Random Access Memories), EPROM들(Erasable Programmable Read-Only Memories), 플래시 메모리들, EEPROM들(Electrically Erasable Programmable Read-Only Memories)과 같은 반도체 디바이스들, 자기 또는 광 카드들, 또는 전자 명령어들을 저장하는데 적합한 임의의 기타 타입의 매체를 포함할 수 있지만, 이에 제한되는 것은 아니다.
본 발명이 제한된 수의 실시예들에 관하여 설명되었지만, 기술분야에 숙련된 자들은 그로부터의 다수의 변형들 및 변경들을 이해할 것이다. 첨부된 청구항들은 본 발명의 진정한 사상 및 범위에 속하는 이러한 변형들 및 변경들 모두를 포함하려는 것이다.

Claims (24)

  1. 프로세서로서,
    각각이 명령어들을 실행하는 복수의 코어들;
    복수의 최대 피크 동작 파라미터 값들을 저장하는 불휘발성 스토리지 - 상기 최대 피크 동작 파라미터 값들 각각은 상기 프로세서의 액티비티 레벨의 함수임 -;
    복수의 파라미터 제한들을 저장하는 구성 스토리지 - 상기 파라미터 제한들 각각은, 상기 최대 피크 동작 파라미터 값들 중 하나의 값 또는 상기 최대 피크 동작 파라미터 값보다 작은 구성가능한 클립 파라미터 값에 대응함 -; 및
    상기 복수의 코어들 각각의 동작 파라미터를 상기 구성 스토리지로부터 취득되는 대응 파라미터 제한으로 제한하는 전력 제어 수단
    을 포함하는 프로세서.
  2. 제1항에 있어서,
    상기 최대 피크 동작 파라미터 값들 각각은 주파수 값에 대응하고, 상기 전력 제어 수단은 상기 대응 최대 피크 동작 주파수 값 및 상기 구성가능한 클립 파라미터 값에 대응하는 구성가능한 클립 주파수 값 중 최소값을 상기 구성 스토리지에 저장하는 프로세서.
  3. 제2항에 있어서,
    상기 구성가능한 클립 주파수 값은 상기 프로세서의 초기화 동안 취득되는 프로세서.
  4. 제2항에 있어서,
    상기 전력 제어 수단은 상기 구성 스토리지에 저장되는 상기 최대 피크 동작 주파수 값들 중 하나의 값을 상기 구성가능한 클립 주파수 값으로 덮어쓰는 프로세서.
  5. 제2항에 있어서,
    상기 전력 제어 수단은, 상기 구성 스토리지에, 대응하는 최대 피크 동작 주파수 값, 및 상기 프로세스 상의 작업부하의 실행 이전에 상기 작업부하의 사전 지식(priori knowledge)에 기초하여 엔티티로부터 취득되는 구성가능한 클립 주파수 값 중 최소값을 저장하는 프로세서.
  6. 제5항에 있어서,
    상기 구성가능한 클립 주파수 값은, 상기 프로세서가 터보 모드에 진입할 수 있게 하지만, 상기 프로세서가 상기 프로세서의 제약에 도달하는 것을 방지할 수 있게 하는 프로세서.
  7. 제5항에 있어서,
    상기 구성가능한 클립 주파수 값은 상이한 시스템들의 복수의 프로세서들이 각각 결정론적 방식으로 제1 애플리케이션을 실행할 수 있게 하는 프로세서.
  8. 제2항에 있어서,
    상기 전력 제어 수단은, 상기 복수의 코어들 중 액티브 코어들의 수에 기초하여 상기 동작 파라미터 제한들을 선택하고, 요청된 동작 주파수가 상기 선택된 파라미터 제한보다 클 때 상기 요청된 동작 주파수에서 제1 코어가 실행되는 것을 방지하는 프로세서.
  9. 제1항에 있어서,
    상기 전력 제어 수단은 상기 구성가능한 클립 파라미터 값보다 높은 속도로 명령어들이 실행되는 것을 방지하고, 상기 구성가능한 클립 파라미터 값은 구성가능한 클립 명령어 속도 값인 프로세서.
  10. 방법으로서,
    멀티-도메인 프로세서의 제1 로직에서 구성가능한 주파수 제한 값들의 세트를 수신하는 단계; 및
    상기 구성가능한 주파수 제한 값들의 세트 중 대응하는 값 또는 최대 피크 주파수 값들의 세트 중 하나의 값을 분해된 값으로서 상기 멀티-도메인 프로세서의 구성 스토리지의 각각의 필드에 저장하는 단계 - 상기 최대 피크 주파수 값들의 세트는 상기 멀티-도메인 프로세서의 불휘발성 스토리지로부터 취득되고, 상기 구성가능한 주파수 제한 값들의 세트는 상기 멀티-도메인 프로세서의 실행시간 동안 취득되어, 상기 멀티-도메인 프로세서가 터보 모드 동작 동안 제약에 도달하는 것을 방지함 -
    를 포함하는 방법.
  11. 제10항에 있어서,
    상기 실행시간 동안 상기 멀티-도메인 프로세서의 코어 도메인에 대한 성능 요청을 수신하고, 상기 코어 도메인의 액티브 코어들의 수를 결정하는 단계; 및
    상기 액티브 코어들의 수에 대응하는 상기 구성 스토리지의 필드가 상기 성능 요청과 관련된 동작 주파수보다 작은 분해된 값을 저장하는지를 판정하고, 그렇다면 상기 코어 도메인에 대한 동작 주파수를 상기 분해된 값으로 제한하는 단계
    를 더 포함하는 방법.
  12. 제11항에 있어서,
    그렇지 않다면, 상기 동작 주파수가 상기 성능 요청과 관련된 동작 주파수에 있을 수 있게 하는 단계를 더 포함하는 방법.
  13. 제10항에 있어서,
    상기 실행시간 동안 상기 멀티-도메인 프로세서의 그래픽 도메인에 대한 성능 요청을 수신하고 상기 그래픽 도메인의 액티브 그래픽 프로세서들의 수를 결정하는 단계, 및 상기 액티브 그래픽 프로세서들의 수에 적어도 부분적으로 기초하여 상기 그래픽 도메인에 대한 동작 주파수를 제한하는 단계를 더 포함하는 방법.
  14. 제10항에 있어서,
    상기 구성 스토리지의 제1 필드에 저장된 최대 피크 주파수 값들의 세트 중 하나의 값을 상기 구성가능한 주파수 제한 값들의 세트 중 대응하는 값으로 덮어쓰는 단계를 더 포함하는 방법.
  15. 시스템으로서,
    복수의 코어들, 복수의 최대 피크 동작 주파수 값들을 저장하는 불휘발성 스토리지- 상기 최대 피크 동작 주파수 값들 각각은 액티브 코어들의 주어진 수의 함수임 -, 전력 제어 유닛(PCU; Power Control Unit), 및 상기 최대 피크 동작 주파수 값들 중 대응하는 값 또는 구성가능한 클립 주파수 값을 구성 스토리지의 각각의 필드에 저장하기 위한 주파수 제한 제어 수단 - 상기 구성가능한 클립 주파수 값은 멀티코어 프로세서 상에서 실행될 작업부하에 관한 사전 정보에 기초함 - 을 포함하는 멀티코어 프로세서; 및
    상기 멀티코어 프로세서에 연결되는 DRAM(dynamic random access memory)
    을 포함하는 시스템.
  16. 제15항에 있어서,
    상기 주파수 제한 제어 로직은 상기 구성 스토리지의 각각의 필드에 상기 대응하는 최대 피크 동작 주파수 값 및 상기 구성가능한 클립 주파수 값 중 최소값을 저장하는 시스템.
  17. 제15항에 있어서,
    상기 주파수 제한 제어 로직은 상기 작업부하를 포함하는 상기 멀티코어 프로세서 상의 제1 애플리케이션의 실행에 응답하여 상기 저장을 수행하는 시스템.
  18. 제17항에 있어서,
    제2 시스템은 제2 멀티코어 프로세서를 포함하고, 상기 제2 시스템과 상기 시스템은 상기 멀티코어 프로세서 및 상기 제2 멀티코어 프로세서의 제약에 도달하지 않는 결정론적 방식으로 상기 제1 애플리케이션을 실행하는 시스템.
  19. 제15항에 있어서,
    상기 주파수 제한 제어 수단은 상기 구성 스토리지에 저장된 상기 최대 피크 동작 주파수 값들 중 하나의 값을 상기 구성가능한 클립 주파수 값으로 덮어쓰는 시스템.
  20. 제15항에 있어서,
    상기 PCU는 상기 프로세서가 터보 모드에 진입할 수 있게 하고, 상기 구성 스토리지에 저장되는 상기 구성가능한 클립 주파수 값은 상기 멀티코어 프로세서가 상기 작업부하의 실행 동안 제약에 도달하는 것을 방지하는 시스템.
  21. 제10항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성되는 통신 디바이스.
  22. 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스로 하여금 제10항 내지 제14항 중 어느 한 항에 따른 방법을 수행하게 하는 복수의 명령어들을 포함하는 적어도 하나의 머신 판독가능 매체.
  23. 제10항 내지 제14항 중 어느 한 항의 방법을 수행하도록 구성되는, 명령어들을 처리하는 장치.
  24. 제10항 내지 제14항 중 어느 한 항의 방법을 수행하는 수단을 포함하는 장치.
KR1020157011451A 2012-12-21 2013-06-28 프로세서의 구성가능한 피크 성능 제한들의 제어 KR101748747B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/724,732 2012-12-21
US13/724,732 US9075556B2 (en) 2012-12-21 2012-12-21 Controlling configurable peak performance limits of a processor
PCT/US2013/048455 WO2014099026A1 (en) 2012-12-21 2013-06-28 Controlling configurable peak performance limits of a processor

Publications (2)

Publication Number Publication Date
KR20150063543A true KR20150063543A (ko) 2015-06-09
KR101748747B1 KR101748747B1 (ko) 2017-06-19

Family

ID=50974131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157011451A KR101748747B1 (ko) 2012-12-21 2013-06-28 프로세서의 구성가능한 피크 성능 제한들의 제어

Country Status (4)

Country Link
US (3) US9075556B2 (ko)
KR (1) KR101748747B1 (ko)
CN (1) CN104798008B (ko)
WO (1) WO2014099026A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304573B2 (en) * 2013-06-21 2016-04-05 Apple Inc. Dynamic voltage and frequency management based on active processors
KR101842016B1 (ko) * 2013-12-10 2018-03-28 한국전자통신연구원 멀티 코어 환경에서의 동적 전력 제어방법
US9882383B2 (en) * 2014-12-23 2018-01-30 Intel Corporation Smart power delivery network
WO2016114771A1 (en) * 2015-01-14 2016-07-21 Hewlett Packard Enterprise Development Lp Reduced core count system configuration
KR102599653B1 (ko) * 2015-11-20 2023-11-08 삼성전자주식회사 냉각 알고리즘을 수행하는 집적 회로와 이를 포함하는 모바일 장치
CN106020422A (zh) * 2016-05-24 2016-10-12 英业达科技有限公司 计算机***的功耗控制方法及***
CN105955827B (zh) 2016-05-31 2017-11-24 广东欧珀移动通信有限公司 处理器计算资源的分配方法及装置
US10248186B2 (en) 2016-06-10 2019-04-02 Microsoft Technology Licensing, Llc Processor device voltage characterization
US10338670B2 (en) 2016-06-10 2019-07-02 Microsoft Technology Licensing, Llc Input voltage reduction for processing devices
US10310572B2 (en) 2016-06-10 2019-06-04 Microsoft Technology Licensing, Llc Voltage based thermal control of processing device
US10209726B2 (en) 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10359833B2 (en) 2016-06-20 2019-07-23 Qualcomm Incorporated Active-core-based performance boost
US10234920B2 (en) * 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
CN108334405A (zh) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 频率异构cpu,频率异构实现方法、装置及任务调度方法
US10739842B2 (en) * 2017-04-01 2020-08-11 Intel Corporation Power management and protection
US10509449B2 (en) 2017-07-07 2019-12-17 Hewlett Packard Enterprise Development Lp Processor power adjustment
US11940859B2 (en) * 2018-11-16 2024-03-26 Hewlett Packard Enterprise Development Lp Adjusting power consumption limits for processors of a server
WO2021081813A1 (zh) * 2019-10-30 2021-05-06 阿里巴巴集团控股有限公司 多核处理器及其调度方法、设备及存储介质

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163153A (en) 1989-06-12 1992-11-10 Grid Systems Corporation Low-power, standby mode computer
US5522087A (en) 1994-03-22 1996-05-28 Verifone Inc. System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up
US5590341A (en) 1994-09-30 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using ready delay
US5621250A (en) 1995-07-31 1997-04-15 Ford Motor Company Wake-up interface and method for awakening an automotive electronics module
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
US6385735B1 (en) * 1997-12-15 2002-05-07 Intel Corporation Method and apparatus for limiting processor clock frequency
US6262872B1 (en) * 1999-06-03 2001-07-17 General Electric Company Electronic trip unit with user-adjustable sensitivity to current spikes
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2001318742A (ja) 2000-05-08 2001-11-16 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
KR100361340B1 (ko) 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US6748546B1 (en) 2000-09-26 2004-06-08 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US6829713B2 (en) 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7058824B2 (en) 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US6996728B2 (en) 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7051227B2 (en) 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US6898689B2 (en) 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US6971033B2 (en) 2003-01-10 2005-11-29 Broadcom Corporation Method and apparatus for improving bus master performance
CN1759368A (zh) 2003-01-23 2006-04-12 罗切斯特大学 多时钟域微处理器
JP4061492B2 (ja) 2003-02-10 2008-03-19 ソニー株式会社 情報処理装置および消費電力制御方法
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7272732B2 (en) 2003-06-30 2007-09-18 Hewlett-Packard Development Company, L.P. Controlling power consumption of at least one computer system
TW200502847A (en) 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US7146514B2 (en) 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
US7194643B2 (en) 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US7594128B2 (en) * 2004-08-04 2009-09-22 Hewlett-Packard Development Company, L.P. Systems and methods to determine processor utilization
US9001801B2 (en) 2004-09-07 2015-04-07 Broadcom Corporation Method and system for low power mode management for complex Bluetooth devices
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
KR101108397B1 (ko) 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US20070106827A1 (en) 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US7650527B2 (en) * 2006-02-07 2010-01-19 Broadcom Corporation MIPS recovery technique
US20070198864A1 (en) * 2006-02-21 2007-08-23 Toshiba America Electronic Components Systems and methods for determining and using power profiles for software programs executing on data processors
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7437270B2 (en) 2006-03-30 2008-10-14 Intel Corporation Performance state management
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7529956B2 (en) 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US7818596B2 (en) * 2006-12-14 2010-10-19 Intel Corporation Method and apparatus of power management of processor
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
WO2008117133A1 (en) 2007-03-26 2008-10-02 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8442697B2 (en) 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101459140B1 (ko) 2007-12-26 2014-11-07 엘지전자 주식회사 전원관리 제어 장치 및 방법
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US7890298B2 (en) * 2008-06-12 2011-02-15 Oracle America, Inc. Managing the performance of a computer system
US8127160B2 (en) * 2008-10-13 2012-02-28 International Business Machines Corporation Dynamic frequency and voltage scaling for a computer processor
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US20120144215A1 (en) * 2010-12-03 2012-06-07 Advanced Micro Devices, Inc. Maximum current limiting method and apparatus
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US9239611B2 (en) 2011-12-05 2016-01-19 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including balancing power among multi-frequency domains of a processor based on efficiency rating scheme
US9141166B2 (en) 2011-12-13 2015-09-22 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains
US9563254B2 (en) 2011-12-22 2017-02-07 Intel Corporation System, method and apparatus for energy efficiency and energy conservation by configuring power management parameters during run time
KR101655137B1 (ko) * 2012-02-04 2016-09-07 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링
US9250668B2 (en) * 2012-11-29 2016-02-02 International Business Machines Corporation Decoupled power and performance allocation in a multiprocessing system

Also Published As

Publication number Publication date
US9075556B2 (en) 2015-07-07
CN104798008B (zh) 2018-08-14
CN104798008A (zh) 2015-07-22
KR101748747B1 (ko) 2017-06-19
US9671854B2 (en) 2017-06-06
US20140176581A1 (en) 2014-06-26
US20150286266A1 (en) 2015-10-08
US9086834B2 (en) 2015-07-21
WO2014099026A1 (en) 2014-06-26
US20140181538A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
KR101748747B1 (ko) 프로세서의 구성가능한 피크 성능 제한들의 제어
US10671133B2 (en) Configurable power supplies for dynamic current sharing
US10372197B2 (en) User level control of power management policies
EP3109731B1 (en) Mapping a performance request to an operating frequency in a processor
CN106598184B (zh) 在处理器中执行跨域热控制
US9335803B2 (en) Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
EP2477090A2 (en) Coordinating performance parameters in multiple circuits
US9335813B2 (en) Method and system for run-time reallocation of leakage current and dynamic power supply current
US9405351B2 (en) Performing frequency coordination in a multiprocessor system
US10551868B2 (en) Multiprocessor systems having processors with different processing capabilities connecting to a clock generator
KR101672357B1 (ko) 응답 타이밍 최적화에 기초하는 멀티프로세서 시스템에서의 주파수 조정 수행
US10860083B2 (en) System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
US20240085972A1 (en) Chiplet state aware and dynamic voltage regulator event handling
US20230280809A1 (en) Method and apparatus to control power supply rails during platform low power events for enhanced usb-c user experience

Legal Events

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