KR20130124575A - 멀티-코어 프로세서에서의 전력 소모 관리 - Google Patents

멀티-코어 프로세서에서의 전력 소모 관리 Download PDF

Info

Publication number
KR20130124575A
KR20130124575A KR1020137024802A KR20137024802A KR20130124575A KR 20130124575 A KR20130124575 A KR 20130124575A KR 1020137024802 A KR1020137024802 A KR 1020137024802A KR 20137024802 A KR20137024802 A KR 20137024802A KR 20130124575 A KR20130124575 A KR 20130124575A
Authority
KR
South Korea
Prior art keywords
core region
value
activity
processor
throttling
Prior art date
Application number
KR1020137024802A
Other languages
English (en)
Other versions
KR101515318B1 (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 KR20130124575A publication Critical patent/KR20130124575A/ko
Application granted granted Critical
Publication of KR101515318B1 publication Critical patent/KR101515318B1/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/329Power saving characterised by the action undertaken by task scheduling
    • 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
    • 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
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Amplifiers (AREA)
  • Microcomputers (AREA)

Abstract

프로세서는 코어 및 비코어 영역을 포함할 수 있다. 코어 영역에 의해 소모되는 전력은 코어 영역에 의해 처리되고 있는 애플리케이션에 관계없이 그 Cdyn가 허용되는 Cdyn 값 이내가 되도록 상기 프로세서의 Cdyn을 제어하는 것에 의해 조절될 수 있다. 전력 관리 기술은 디지털 활동도(DAF)를 측정하는 것과, 아키텍처 및 데이터 활동 레벨들을 모니터링하는 것과, 활동 레벨들에 기초하여 인스트럭션들을 스로틀링하는 것에 의해 전력 소모를 제어하는 것을 포함한다. 인스트럭션들을 스로틀링하는 것의 결과로서, 스로틀링은 3rd 드룹 및 TDP(thermal design point)로 구현될 수 있다. 또한, 코어 영역이 딥 전력 절감 상태에 있는 동안 비코어 영역에 의해 소모되는 유휴 전력은 비코어 영역에 제공되는 기준 전압 VR 및 VP를 달라지게 하는 것에 의해 감소될 수 있다. 결과적으로, 비코어 영역에 의해 소모되는 유휴 전력이 감소될 수 있다.

Description

멀티-코어 프로세서에서의 전력 소모 관리{MANAGING POWER CONSUMPTION IN A MULTI-CORE PROCESSOR}
컴퓨터 시스템은 프로세서를 포함할 수 있으며, 이것은 코어 영역 및 비코어 영역을 포함할 수 있다. 코어 영역은 하나 이상의 프로세싱 코어들, 캐시들(예를 들어, L1 및 L2), 라인-필 버퍼(line-fill buffer)들을 포함할 수 있으며, 비코어 영역은 라스트 레벨 캐시들, 메모리 컨트롤러, 및 이러한 다른 블록들로 구성될 수 있다. 프로세서 전력 관리 기술들은 코어 영역에 의해 소모되는 전력을 감소시키는 것을 목적으로 한다. 하나의 이전 접근방식에서는, 코어 영역에서의 활동도(activity factor)가 측정되었으며, 그 활동도에 대응하는 전력 값(실제의 전력 소모 값)이 결정되었다. 즉, 전압 및/또는 주파수 동작점은 실제의 전력 소모 값과 허용되는 전력 값 사이의 비교에 기초하여 달라질 수 있다. 전력 관리 기술은 실제의 전력 소모 값이 허용되는 전력 값 이상임을 검출한 이후에 전압 및/또는 주파수 동작점을 낮출 수 있다. 그러나, 높은 활동(high activity)이 검출되는 시점과 전압 및/또는 주파수 동작점이 실제 낮추어지는 시점 사이에는 소정 양의 시간이 발생될 것이다. 이 두 시점들 사이에서는, 컴퓨터 시스템이 높은 전력 상태 및 높은 활동 상태에서도 동작할 수 있다. 이러한 상황을 방지하기 위해, 프로세서(또는 그 부품)은 더 낮은 전압 및 주파수(V/F) 포인트로 빈(binned)되어야 한다.
다른 이전의 접근방식에서는, 전압 및/또는 주파수 동작점들이 프로세서 전력 절감(P) 상태들과 부스트 모드들에 기초하여 선택될 수 있으며, 이것은 실제의 전력 소모값에 기초하여 전압 및/또는 주파수 동작점들을 조절할 수 있다. 상기 접근방식들은 주파수를 통해 성능 및 전력을 증가 또는 감소시키는 전압 동작 범위에 의존한다. 프로세서들의 각각의 새로운 세대로 인하여, VCCmax가 게이트-산화막 신뢰도를 위해서 더 낮아지고 VCCmin가 거의 일정하게 유지되므로, 전압 범위는 감소되었다. 상기 접근방식들은 현실적으로 과전력 상태에 대해 반응을 한다. 위에서 논의된 전력 관리 기술들은 높은 열적 상태 또는 전력 상태에 도달한 이후에만 반응을 하게 된다. 결과적으로, 열적 또는 전력 상태의 변경에 대한 응답으로 전압 및/또는 주파수 동작점을 실제 변경시키는데 걸리는 시간(또는 레이턴시)은 상당하며, 그 레이턴시를 감소시킬 필요가 있다.
또한, 다른 한편으로, 최신 프로세서들은 다수의 코어 설계들을 대상으로 하며, 이들 코어들은 공통의 비코어 영역에 커플링되어 있다. 공정 기술의 발전으로 인하여, 프로세서 내의 비코어 영역은 더 큰 사이즈로 증가하고 있다. 최신 프로세서들에서의 비코어 영역들은 다수의 기능 블록 및 논리 블록(예컨대, 메모리 컨트롤러, 라스트 레벨 캐시들, 홈 에이전트들, 라우팅 에이전트들, 캐싱 에이전트들, 전력 제어 유닛들, 인터페이스들, 및 이러한 다른 블록들)을 포함할 수 있으며, 통상적으로 코어 영역과 다른 전원 플레인에서 동작할 수 있다. 바람직하게는, 이들 프로세서들은 낮은 유휴 전력(idle power)을 소모할 필요가 있으며, 예를 들어, 총 에너지 소모를 감소시키고/시키거나 배터리 수명을 향상시킬 필요가 있다. 그러나, 이러한 대형 비코어 영역에 의해 소모되는 전력은 상당한 레벨(프로세서에 의해 소모되는 전체 전력의 50%에 근접)에 도달하고 있다.
비코어 영역에서의 전력 소모 관리는 더욱더 중요해 졌다. 비코어 영역에서의 전력 관리는, 코어 영역과 같이 양호하게 정의된 슬립 상태들(예컨대, C0 내지 C6/C7)이 존재하지 않기 때문에 추가적인 문제점들을 부여하고 있다. 특히, 코어 영역이 딥 슬립 상태 예컨대, C3, C6/C7 또는 임의의 다른 유사 상태들(패키지 C-상태로 지칭됨)로 존재하는 경우, 코어 아키텍처 상태들은 비코어 영역에서 저장되며, 퍼코어(per core) PGT(power gate transistors) 또는 EPG(embedded power gates)를 사용하여 실질적으로 최소값으로 감소된다. 이러한 상태하에서, 코어 영역에 의한 유휴 전력 소모는 거의 0이 되며, 비코어 영역에 의해 소모되는 유휴 전력은 상당하다. 또한, 코어 영역과는 다르게, 비코어 영역은 특정 레이턴시 이내에 임의의 외부 요청들을 서비스하도록 활성화되어야 한다. 다수의 이러한 프로세서들은 복수의 소켓들에 커플링된 분산 메모리를 가진 멀티-소켓 구성으로 설계되어 있다. 전압 및 주파수 스케일링과 같은 전력 최적화 기술들을 사용하는 것은 피어(peer) 소켓들에 대한 스누프들 또는 메모리 액세스 응답 또는 시스템 에이전트 응답 레이턴시에 영향을 미칠 수 있다. 따라서, 현재의 프로세서들은 패키지 C-상태의 코어 영역 동안 비코어 영역에서의 전력 보존을 위해 전압/주파수 스케일링 기술들을 사용하지 않는다. 결과적으로, 프로세서 패키지 유휴 전력은 TDP(thermal design power) 전력의 20-40% 만큼 높다. 따라서, 프로세서의 코어 영역과 비코어 영역 모두에서의 개선된 전력 관리 기술들이 필요하다.
여기에 설명되는 본 발명은 첨부 도면에서 예지만 제한은 아닌 것으로서 예시된다. 예시의 단순성 및 명료성을 위해, 도면에 예시된 구성요소는 반드시 일정한 축척에 따라 도시되지 않는다. 예컨대, 일부 구성요소의 치수는 명료성을 위해 다른 구성요소에 비해 과장될 수 있다. 더욱이, 적절한 것으로 간주되는 경우, 참조 부호는 상응하거나 유사한 구성요소를 표시하도록 도면 중에서 반복되었다.
도 1은 일 실시예에 따라, 코어 영역에서 활동 기반 전력 절감 기술을 지원하고 비코어 영역에서 로드-라인(load-line) IR 드롭 기반 전력 절감 기술을 지원하는 프로세서(100)를 도시하고 있다.
도 2는 일 실시예에 따라, 총 커패시턴스(Ctotal)와 동적 커패시턴스(Cdyn) 관점에서 모델링된 프로세서의 코어 영역을 도시하고 있다.
도 3은 일 실시예에 따라, 애플리케이션들의 작업 부하 변경에 대한 Cdyn의 변화의 플롯을 도시하고 있다.
도 4는 일 실시예에 따라, 코어 영역에서 사용되는 활동 기반 전력 절감 기술을 나타내는 흐름도를 도시하고 있다.
도 5는 일 실시예에 따라, 코어 영역에서 사용되는 활동 기반 전력 절감 기술을 구현하기 위해 사용되는 블록도를 도시하고 있다.
도 6은 일 실시예에 따라, 코어 영역에서 사용되는 활동 기반 전력 절감 기술을 구현하기 위해 사용되는 활동 축적 로직의 블록도를 도시하고 있다.
도 7은 일 실시예에 따라, 코어 영역에서의 순간 활동(instantaneous activity)에 대한 활동 기반 전력 절감 기술의 효과를 도시하는 그래프이다.
도 8은 일 실시예에 따라, 코어 영역에서의 평균 활동(average activity)에 대한 활동 기반 전력 절감 기술의 효과를 도시하는 그래프이다.
도 9는 일 실시예에 따라, 비코어 영역에서 사용되는 로드-라인 IR 드롭 기반 전력 절감 기술을 도시하는 흐름도이다.
도 10(a), 10(b), 및 10(c)는 일 실시예에 따라, 로드-라인 IR 드롭 기반 전력 절감 기술을 사용하는 동안 비코어 영역에 제공되는 전압의 저감을 도시하고 있다.
도 11(a), 11(b), 및 11(c)는 일 실시예에 따라, 비코어 영역에서의 로드-라인(load-line) IR 드롭 기반 전력 절감 기술 사용에 대응하는 전류, 전압, 및 전력의 변화를 도시하는 타이밍 다이어그램이다.
도 12는 본 발명의 일 실시예에 따른 컴퓨터 시스템의 블록도를 도시하고 있다.
다음의 설명은 포스트 위클리 오더드 트랜잭션(post weakly ordered transaction)들에 대한 기술의 실시예들을 기술한다. 다음의 설명에서, 논리 구현, 자원 분할/공유/중복 구현들, 시스템 구성 요소들의 타입 및 상호 관계, 및 논리 분할/통합 선택과 같은 많은 특정한 상세 사항은 본 발명의 더욱 철저한 이해를 제공하기 위해 설명된다. 그러나, 본 발명은 이와 같은 특정한 상세 사항 없이 실시될 수 있다. 다른 경우에, 제어 구조, 게이트 레벨 회로 및 전체 소프트웨어 인스트럭션 시퀀스는 본 발명을 불명료하게 하지 않도록 상세히 나타내지 않았다. 당업자는 과도한 실험 없이 포함된 설명을 이용해서 적절한 기능을 구현할 수 있다.
명세서에서 "일 실시예", "실시예", "예시적 실시예" 에 대한 언급은 설명된 실시예가 특정한 특징, 구조, 또는 특성을 포함할 수 있지만 모든 실시예가 반드시 특정한 특징, 구조, 또는 특성을 포함하는 것은 아니라는 것을 나타낸다. 또한, 이와 같은 구(phrase)들은 반드시 동일한 실시예를 나타내지 않는다. 더욱이, 특정한 특징, 구조 또는 특성이 실시예와 관련하여 설명될 때, 명시적으로 설명되었는지를 불문하고 다른 실시예들과 관련하여 그러한 특정한 특징, 구조 또는 특성을 달성하는 것은 당업자의 지식 범위 내에 있다는 점이 언급된다.
본 발명의 실시예들은 하드웨어, 펌웨어, 소프트웨어, 또는 이의 어떤 조합으로 구현될 수 있다. 본 발명의 실시예들은 또한 하나 이상의 프로세서에 의해 판독되어 실행될 수 있는 머신 판독 가능 매체에 저장된 인스트럭션들로서 구현될 수 있다. 머신 판독 가능 매체는 머신(예컨대, 컴퓨팅 디바이스)에 의해 판독 가능한 형식으로 정보를 저장하거나 전송하는 어떤 메커니즘을 포함할 수 있다.
예컨대, 머신 판독 가능 매체는 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 자기 디스크 저장 매체; 광학 저장 매체; 플래시 메모리 디바이스; 전기, 광학, 음향 또는 다른 유사한 신호들을 포함할 수 있다. 또한, 펌웨어, 소프트웨어, 루틴들, 및 인스트럭션들은 소정 동작들을 수행하는 것으로서 여기서 설명될 수 있다. 그러나, 이러한 설명들은 단순히 편의를 위한 것이며 실제에 있어서 이러한 동작들은 컴퓨팅 디바이스들, 프로세서들, 컨트롤러들, 및 그 밖의 펌웨어, 소프트웨어, 루틴들, 및 인스트럭션들을 실행시키는 디바이스들로부터 발생한다는 것임을 인식해야 한다.
프로세서는 컴퓨팅 시스템의 중요한 부분을 형성한다. 현대의 프로세서들은 복수의 프로세싱 코어들과 캐시들을 포함하는 코어 영역과 대형 비코어 영역을 구비한다. 프로세서에 의해 소모되는 전력은 컴퓨팅 시스템에 의해 소모되는 전체 전력에 영향을 미친다. 프로세서에 의해 소모되는 동적 전력(P)은 P = Cdyn * (Vcc)2 * F로 주어질 수 있다. 일 실시예에서, 프로세서의 코어 영역에 의해 소모되는 전력은 프로세서의 Cdyn를 제어하는 것에 의해 제어될 수 있다. 일 실시예에서, Cdyn는 코어 영역에 의해 처리되고 있는 애플리케이션(또는 코드)와 관계없이, Cdyn가 허용되는 Cdyn 값 이내가 되도록 제어될 수 있다. 일 실시예에서, 전력 관리 기술은 디지털 활동도(DAF)를 측정하는 것과, 아키텍처 및 데이터 활동 레벨들을 모니터링하는 것과, 활동 레벨들에 기초하여 인스트럭션들을 스로틀링하는 것에 의해 전력 소모를 제어하는 것을 포함할 수 있다. 일 실시예에서, 이러한 접근방식은 코드가 부스트 모드(이것은 처리되고 있는 코드에 반응할 수 있음)와 비교하여 처리되고 있는 동안에 그 부스트 모드들을 생성하기 위한 정교한 전력 관리 기술 및 능력을 제공할 수 있다. 일 실시예에서, 부스트 모드는 코어(들) 또는 프로세서를 더 높은 주파수 및 더 높은 전압 동작점에서 작동시켜서 더 가벼운 작업 부하들을 위해 고성능을 가능하게 하는 것을 지칭할 수 있다.
일 실시예에서는, 코어 영역에 의해 소모되는 전력을 제어하기 위해, 프로세서가 복수의 활동 센서들, 활동 축적 로직, 스로틀링 로직, 및 조절기(throttler)를 포함할 수 있다. 일 실시예에서, 활동 센서들은 블록들(예컨대, 인스트럭션 페치 및 디코드 유닛, 실행 유닛들, 및 프로세싱 코어 내의 이러한 다른 유닛들) 내에서 발생하는 활동을 감지할 수 있으며, 그 활동 레벨들(아키텍처 및 데이터 활동 값들)을 활동 축적 로직으로 제공할 수 있다. 일 실시예에서, 활동 센서들로 하여금 아키텍처 및 데이터 활동 이벤트들을 검출할 수 있도록 하기 위해, 활동 센서들은 프로세싱 코어들 내의 각 블록의 인터페이스들(또는 포트들)에 제공될 수 있다. 일 실시예에서, 활동 축적 로직은 활동 센서들로부터의 활동 값들을 수집하는 것에 대응하여 축적된 활동 값을 생성할 수 있다. 일 실시예에서, 활동 축적 로직은 축적된 활동 레벨을 스로틀링 로직으로 제공할 수 있다. 일 실시예에서, 활동 축적 로직(AAL)은 가중 로직(weighing logic) 및 집합기(aggregator)들을 포함할 수 있으며, 가중 로직은 활동 센서들에 의해 제공되는 각각의 활동 값에 대해 가중값(weight)을 할당할 수 있으며, 집합기들은 그 활동 값들을 축적(또는 합산)하여 축적된 활동 값을 생성할 수 있다.
일 실시예에서, 스로틀링 로직(throttling logic)은 축적된 활동 레벨을 수신한 것에 대응하여 Cdyn_actual 을 결정할 수 있다. 일 실시예에서, 스로틀링 로직은 또한 Cdyn_actual 을 전력 스코어 값으로 캘리브레이팅(calibrate)할 수도 있다. 일 실시예에서, 스로틀링 로직은 전력 스코어를 전력 제어 유닛에 의해 제공되는 타겟 값과 비교하여, 전력 스코어가 타겟 값보다 큰 경우에는 제 1 신호를 생성하고, 전력 스코어가 타겟 값보다 작은 경우에는 제 2 신호를 생성할 수 있다. 일 실시예에서, 스로틀링 로직은 제 1 신호에 기초하여 제 1 인스트럭션 분산율(또는 값)을 결정할 수 있고, 제 2 신호에 기초하여 제 2 인스트럭션 분산 값을 결정할 수 있다. 일 실시예에서, 스로틀링 로직은 제 1 또는 제 2 인스트럭션 분산 값을 조절기로 제공한다.
일 실시예에서, 조절기는 인스트럭션 분산(또는 인스트럭션들이 실행 유닛들로 제공되는 속도)의 스로틀링을 달라지게 할 수도 있고(증가, 감소), 또는 스로틀링 로직으로부터 수신되는 신호에 기초하여 이전의 스로틀링 레벨을 유지할 수도 있다. 일 실시예에서, 조절기는 제 1 인스트럭션 분산 값을 수신하는 것에 대응하여 인스트럭션 스로틀링을 증가시킬 수 있고(즉, 보다 적은 인스트럭션들이 실행 유닛들로 제공될 수 있음), 또한 조절기는 제 2 인스트럭션 분산 값을 수신하는 것에 대응하여 인스트럭션 스로틀링을 감소시킬 수 있다(즉, 더 많은 개수의 인스트럭션들이 실행 유닛들에 도달하도록 허용됨). 따라서, 코어 영역(또는 프로세싱 코어 내)의 전력 소모는 프로세싱 코어의 활동 레벨들에 기초하여 인스트럭션 분산을 스로틀링하는 것에 의해 제어될 수 있다. 활동 레벨들(또는 Cdyn_actual)에 기초하여 인스트럭션들을 스로틀링하는 것의 결과로서, 스로틀링은 상이한 시간 도메인들, 예컨대 3rd 드룹(1 마이크로초) 및 TDP(thermal design point)(1 밀리초)로 구현될 수 있으며, 이것은 프로세서의 코어 영역에서의 전력 소모를 제어하는 롱 텀(즉, TDP) 및 숏 텀(즉, 3rd 드룹) 연산들을 가능하게 한다.
현대의 프로세서들에서는 비코어 영역의 사이즈가 계속 증가하고 있으며, 프로세서의 비코어 영역에 의해 소모되는 전력 또한 그러하다. 특히, 일 실시예에서, 비코어 영역에 의해 소모되는 유휴 전력(즉, 코어 영역이 패키지 C-상태와 같은 딥 전력 절감 상태들에 있는 동안 비코어 영역에 의해 소모되는 전력)은 비코어 영역에 제공되는 전압(즉, 기준 전압 VR)을 달라지게 하는 것에 의해 저감될 수 있다. 일 실시예에서, 전압 레귤레이터의 출력은 부하 레지스터 RL을 통해서 비코어 영역의 서플라이 핀에 커플링될 수 있다. 비코어 영역의 서플라이 핀에서의 전압(VP)은 IR 드롭(=ICC * RL)과 동일한 양만큼 VR보다 작으며, 즉 VP = [VR - (ICC * RL)] 이다.
일 실시예에서, 비코어 영역이 부품의 제조사에 의해 명시된 주파수 값으로 작동되어야 하는 경우, 최소값의 전압(VPmin)이 비코어 영역에 제공될 것이다. 일 실시예에서, VR = X 이고 ICC = ICC_peak 인 경우, VP_peak = (X - ICC_peak * RL) 볼트이다. 일 실시예에서, VP_peak 는 설계 고장을 방지하기 위해 적어도 VPmin 과 동일해야 하며, VPmin 값 미만으로 VP_peak 를 감소시키는 것이 불가능할 수도 있다. 일 실시예에서, 코어 영역이 패키지 C-상태인 경우, ICC의 값은 ICC_idle 이 될 수 있으며, 비코어 영역의 서플라이 핀에서의 전압(VP_idle)은 (X - ICC_idle*RL) 이 될 수 있다. ICC_idle이 ICC_peak 미만이므로, (ICC_idle*RL)의 프로덕트는 (ICC_peak*RL)의 프로덕트 미만이 된다. 결과적으로, VP_idle 은 VP_peak 보다 크게 된다. 일 실시예에서, 코어 영역이 패키지 C-상태에 있는 동안, 비코어 영역의 핀에 최소 전압(VPmin)을 제공하는 것으로 충분할 수 있다.
그러나, 부하 레지스터 RL를 통해 전류 (ICC_idle)가 흐르는 동안 기준 전압 VR을 달라지게 하는 기술이 존재하지 않을 시에는, VPmin(또는 VP_peak) 보다 큰 전압 VP_idle 이 비코어 영역으로 제공된다. ICC_idle 이 부하 레지스터 RL로 흐르는 경우에도, 불필요하게, (VP_idle - VP_peak) 인 과잉 전압 값이 비코어 영역으로 제공된다. 결과적으로, 비코어 영역이 유휴 상태(idle)인 동안에도, (VP_idle-VP_peak) 인 전압의 제곱에 비례하는 과잉 전력이 비코어 영역에 의해 소모된다. 일 실시예에서, 코어 영역이 딥 패키지 C-상태에 있는 동안, 기준 전압 VR이 달라져서 비코어 영역의 서플라이 핀에서 제공되는 전압 (VP_idle)을 저감시킬 수 있다. 일 실시예에서, 기준 전압 VR은 VP_reduced 로 저감됨으로써, VP_idle 이 VPmin(또는 VP_peak) 보다 약간 더 높은 값으로 감소되도록 할 수 있다. 일 실시예에서, (VP_idle - VP_peak) 가 0이 되는 경우, 비코어 영역에 의해 소모되는 유휴 전력은 최소가 될 수 있다. 일 실시예에서, 코어 영역이 패키지 C-상태에 있는 동안에는, 기준 전압(VR)이 비코어 영역에 의해 소모되는 유휴 전력을 저감 또는 절감하도록 달라질 수 있다.
도 1에는, 프로세서의 코어 및 비코어에서 소모되는 전력을 저감시키는 전력 절감 기술들을 지원할 수 있는 프로세서(100)의 일 실시예가 도시되어 있다. 일 실시예에서, 프로세서(100)는 코어 영역(105) 및 비코어 영역(150)으로 구성될 수 있다. 일 실시예에서, 코어 영역(105) 및 비코어 영역(150)은 프로세싱 코어들(p-코어들)(110) 간의 통신 및 코어 영역(105)과 비코어 영역(150) 간의 통신을 향상시키도록 포인트-투-포인트 양방향 버스를 지원할 수 있다. 일 실시예에서, 코어 영역(105)에는 전원 플레인(195)이 제공될 수 있고, 전원 플레인(195)은 전압 레귤레이터(180)를 포함할 수 있으며, 전압 레귤레이터(180)의 출력(101)은 부하 레지스터 RL(102)를 통해서 서플라이 핀(104)에 커플링될 수 있다.
일 실시예에서, 코어 영역(105)은 프로세싱 코어들, 예컨대 p-코어(110-A 내지 110-N), p-코어들(110-A 내지 110-N)과 각각 연관된 퍼-코어(per-core) 캐시들(120-A 내지 120-N) 및 p-코어들(110-A 내지 110-N)과 각각 연관된 미드-레벨 캐시들(130-A 내지 130-N)을 포함할 수 있다. 일 실시예에서, p-코어들(110)은 인스트럭션 큐(106), 조절기(107), 활동 축적 로직 AAL(108), 스로틀링 로직 TL(109), 인스트럭션 페치 유닛 IFU(112), 디코드 유닛(113), 레저베이션 스테이션 RS(114), 실행 유닛 EU(115), 플로팅 포인트 실행 유닛 FPU(116), 리-오더 버퍼 ROB(117), 및 리타이어먼트 유닛 RU(118)을 포함할 수 있다. 일 실시예에서, 각각의 프로세서 코어(110-B 내지 110-N)는 프로세싱 코어(110-A)에 도시된 블록들과 유사한 블록들을 포함할 수 있으며, 간략화를 위해 각각의 프로세싱 코어들(110-B 내지 110-N)의 내부 상세구조들은 나타나 있지 않다. 일 실시예에서, 퍼-코어(per-core) 캐시들(120)은 더 높은 액세스 속도를 지원할 수 있는 메모리 기술들을 포함할 수 있으며, 이것은 예를 들어 인스트럭션과 데이터 페치들의 레이턴시를 감소시킬 수 있다.
일 실시예에서, 활동 센서들(179)은 블록들 IFU(112), DU(113), RS(114), EU(115), FPU(116), ROB(117), 및 RU(118) 내에서 발생하는 활동을 감지할 수 있으며, 그 활동 레벨들(아키텍처 및 데이터 활동 값들)을 활동 축적 로직에 제공할 수 있다. 일 실시예에서는, 활동 센서들(179)로 하여금 아키텍처 및 데이터 활동 값들을 검출할 수 있도록 하기 위해, 활동 센서들(179)이 프로세싱 코어(110-A) 내의 각 블록의 데이터 경로들에 제공될 수 있다. 일 실시예에서는, 코어 영역(105)에 의해 소모되는 전력을 제어하기 위해, AAL(108)가 복수의 활동 센서들(179)에 의해 감지된 활동 레벨들을 수집할 수 있으며 축적된 활동 값을 생성할 수도 있다. 일 실시예에서, 활동 축적 로직 AAL(108)은 축적된 활동 값을 스로틀링 로직 TL(109)에 제공할 수 있다.
일 실시예에서, TL(109)은 축적된 활동 레벨을 수신하는 것에 대응하여 Cdyn_actual을 결정할 수 있다. 일 실시예에서, TL(109)는 또한 Cdyn_actual을 전력 스코어 값으로 캘리브레이팅할 수도 있다. 일 실시예에서, TL(109)는 전력 스코어를 타겟 값(허용되는 Cdyn 값)과 비교하여 제어 신호를 생성할 수 있으며, 이 제어 신호는 인스트럭션들의 스로틀링 레벨 또는 인스트럭션 분산율을 유지할지 또는 증가 또는 감소할지의 여부를 표시할 수 있다. 일 실시예에서, 조절기(107)는 TL(109)로부터 수신된 제어 신호에 기초하여 인스트럭션들의 스로틀링 또는 인스트럭션 분산율을 유지하거나 달라지게(증가 또는 감소)할 수 있다. 일 실시예에서, 조절기(107)는 제어 신호를 수신하는 것에 대응하여 인스트럭션 스로틀링을 증가시킬 수도 있고(즉, 적은 인스트럭션들이 실행 유닛들에 제공될 수 있음), 또는 인스트럭션 스로틀링을 감소시킬 수도 있다(즉, 보다 많은 개수의 인스트럭션들이 실행 유닛들에 도달하도록 허용됨).
따라서, 코어 영역(105)(또는 프로세싱 코어들(110) 내)에서의 전력 소모는 프로세싱 코어(110)(또는 그것의 Cdyn_actual)에서의 활동 레벨들에 기초하여 인스트럭션들을 스로틀링하는 것에 의해 제어될 수 있다. 일 실시예에서, 인스트럭션들의 스로틀링은 활동 레벨들(또는 Cdyn)에 직접 기초하여 수행될 수 있고, 전력 소모를 제어하는 능력이 더 빨라질 수 있다. 또한, Cdyn를 설정값으로 제한하는 것에 의해, 코어에서의 전력 소모 제어가 과잉 전력 소모 상태들의 발생에 반응하는 것이 아니라 프로-액티브(pro-active) 기반으로 수행될 수 있다. 활동 레벨들(또는 Cdyn_actual)에 기초하여 인스트럭션들을 스로틀링하는 것의 결과로서, 스로틀링은 상이한 시간 도메인들, 예컨대 3rd 드룹(1 마이크로초) 및 TDP(thermal design point)(1 밀리초)로 구현될 수 있으며, 이것은 프로세서(100)의 코어 영역(105)에서의 전력 소모를 제어하는 롱 텀(즉, TDP) 및 숏 텀(즉, 3rd 드룹) 연산들을 가능하게 할 수 있다. 일 실시예에서, Cdyn 및 그 타입 애플리케이션들에 대한 관계가 아래의 도 3에 도시되어 있다.
위에서 논의된 활동 레벨 기반 기술들을 사용하여 코어 영역(105)에서의 전력 소모가 제어 또는 관리될 수 있는 반면, 비코어 영역(150)에서의 전력 소모는 아래에서 기술되는 전력 관리 기술들을 사용하여 관리될 수도 있다. 일 실시예에서, 비코어 영역(150)은 메모리 컨트롤러(155), 라스트 레벨 캐시 LLC(160), 홈 에이전트 HA(161), 캐싱 에이전트 CA(162), 라우팅 에이전트 RA(163), 글로벌 클록/PLL(164), 인터페이스(165), 및 전력 관리 유닛(168)을 포함할 수 있다. 일 실시예에서, 기준 전압 VR은 비코어 영역(150)에 의해 소모되는, 특히, 유휴 전력을 감소시키도록 달라질 수 있으며, 코어 영역(105)은 딥 패키지 C-상태 (즉, C3, C6/C7와 같은 딥 전력 절감 상태)로 존재할 수 있다. 일 실시예에서, 비코어 영역(150)에는 전원 플레인(197)이 제공될 수 있으며, 전원 플레인(197)은 전압 레귤레이터(195)를 포함할 수 있고, 또한 전압 레귤레이터(195)의 출력(196)은 부하 레지스터 RL(192)를 통하여 비코어 영역(150)의 서플라이 핀(194)에 커플링될 수 있다. 일 실시예에서, 코어 영역(105)이 패키지 C-상태에 있는 동안, 인터페이스 경로(199) 상에서의 트랜잭션들 또는 활동은 0이 될 수 있다.
코어 영역(105)이 활성인 동안, 피크 양의 전류 (ICC_peak)가 RL(192)을 통해 흐를 수 있으며, 비코어 영역(150)의 서플라이 핀(194)에서의 전압 (VP_peak) 은 전압 레귤레이터(195))의 (출력(196)에서의) 기준 전압 VR보다 IR 드롭(=ICC_peak*RL)과 동일한 양만큼 더 적을 수 있다(즉, VP_peak = [VR - (ICC_peak*RL)]). 예를 들어, VR = 1 볼트이고, RL(192) = 1.4 밀리옴이고, 또한 ICC(193) = ICC_peak = 50 암페어인 경우, IR 드롭은 (ICC*RL) = (50 암페어*1.4 밀리옴) = 70 밀리볼트(mv) 가 될 수 있다. 결과적으로, 서플라이 핀(194)에 제공되는 전압 (VP_peak)은 [1 볼트 - 70밀리볼트] = 0.93 볼트가 될 수 있다. 일 실시예에서, 비코어 영역(150)이 부품(즉, 프로세서(100))의 제조사에 의해 명시된 주파수 값(또는 빈 주파수(bin frequency))에서 작동되어야 하는 경우, 최소값의 전압 VPmin(본 예에서는 VP-peak 가 됨)이 비코어 영역(150)에 제공될 수 있다. 일 실시예에서, 설계 고장들을 방지하기 위해, 명시된 값(상기 예에서는 1 볼트) 미만의 기준 전압 VR 값을 감소시키는 것이 가능하지 않을 수도 있다.
기준 전압 VR을 달라지게 하는 기술이 존재하지 않을 시, 코어 영역(105)이 패키지 C-상태인 동안에는, RL(192)을 통해 흐르는 전류(ICC(193))가 ICC_idle이 될 수 있고, 비코어 영역(150)의 서플라이 핀(194)에서의 전압 (VP_idle)은 [VR - (ICC_idle*RL)] 이 될 수 있다. ICC_idle이 ICC_peak보다 작으므로, (ICC_idle*RL) 의 프로덕트는 (ICC_peak*RL)의 프로덕트보다 작게 된다. 결과적으로, VP_idle이 VP_peak 보다 크게 된다. 예를 들어, ICC_idle은 20 암페어가 될 수 있고, VP = [1 볼트 - (20암페어*1.4 밀리옴)] = [1 볼트 - 28밀리볼트] = 0.972 볼트이며, 이것은 VP_peak (0.93 볼트) 보다 크다. 결과적으로, (VP_idle - VP_peak) = (0.972 - 0.93 = 0.042 볼트)인 과잉 전압이 불필요하게 비코어 영역(150)으로 제공된다. 결과적으로, 유휴 상태에서 비코어 영역에 의해 소모되는 전력(즉, power consumed_idle)은 normal_power_consumed_idle 일 수 있으며, 이것은 (= 동적 전력 + 누설 전력 = {[Cdyn*(VP_idle)2*f] + [(VP_idle)4의 함수]} = {[5nF*(0.972)2* 2.53GhZ] + [5 와트]} = 16.95 와트가 될 수 있다.
일 실시예에서, 코어 영역(105)이 딥 전력 절감 상태에 있는지 또는 패키지 C-상태에 있는지의 여부에 기초하여 기회적으로 기준 전압을 달라지게 하는 것에 의하여, 코어 영역(105)의 유휴 상태 동안에 전력 소모를 절감할 기회들을 제공할 수 있다. 일 실시예에서는, PGT(power gate transistors) 또는 EPG(embedded power gate)를 사용하여 코어 영역(105)에 제공되는 전압이 실질적으로 컷오프될 수 있다. 일 실시예에서는, 코어 영역(105)이 딥 전력 절감 상태에서 작동하고 있는 동안, 코어 영역(105)에 의해 비코어 영역(150)으로 주입되는 활동은 실질적으로 낮아질 수 있다. 일 실시예에서는, 코어 영역(105)이 패키지 C-상태인 동안 비코어 영역(150)의 서플라이 핀(194)에 최소 전압(VPmin =0.93 볼트)을 제공하는 것으로 충분할 수 있다. VPmin에 근접할 수 있는 값인, VP_reduced로 VP_idle을 저감시키기 위해, 전력 관리 유닛(168)은 코어 영역(105)의 패키지 C-상태 상황을 검출할 수 있으며 또한 디지털 포맷으로 전압 값 (VID_R)을 생성할 수 있다. 일 실시예에서는, VID_R 값이 전압 레귤레이터(195)에 제공될 수 있다. 일 실시예에서, 전압 레귤레이터(195)는 기준 전압 VR을 생성할 수 있으며, 이 기준 전압 VR은 전력 관리 유닛(168)으로부터 VID_R 값을 수신하는 것에 대응하여 VR_peak (=1 볼트)보다 낮을 수 있다.
일 실시예에서는, VR_peak 값(또는 VR_normal)에서 VR_reduced 값으로의 VR 값의 감소로 인하여, 서플라이 핀(194)에 제공되는 VP_idle(또는 VP_normal)이 감소될 수 있다. 일 실시예에서는, 기준 전압 VR을 VR_normal 값에서 VR_reduced 값으로 감소시키는 것으로 인하여 VP_idle에서 VP_reduced로의 VP의 감소가 야기될 수 있다. 일 실시예에서, 비코어 영역(150)에 의해 소모되는 전력은 VP_idle에서 VP_reduced로 VP의 값을 감소시키는 것에 대응하여 감소될 수도 있다. 예를 들어, VID를 수신하는 것에 대응하여, 전압 레귤레이터(195)는 VR_normal(1 볼트)에서 VR_reduced(0.96 볼트)로 VR을 감소시킬 수 있으며, 결과적으로, VP는 VP_idle에서 VP_reduced로 감소될 수 있다([= 0.96 - (20암페어 * 1.4밀리옴) = (0.96 - 0.028) = 0.932 볼트]). 일 실시예에서, power consumed_idle은 reduced_power_consumed_idle 로 감소될 수 있다(즉, P_idle_reduced = 동적 전력 + 누설 전력 = {[Cdyn * (VP_reduced)2 * f] + [(VP_reduced)4의 함수]} = {예컨대, [5nF * (0.932)2 * 2.53GhZ] + [4 와트]} = 14.998 와트). 결과적으로, 전력 절감 = [(normal_power_consumed_idle)- (reduced_power_consumed_idle) = (16.95 - 14.998) = 1 .96 와트) 이다. 그러므로, 일 실시예에서, 기준 전압 VR 를 기회적으로 달라지게 하는 것에 의해, 비코어 영역(150)에 의해 소모되는 전력은 패키지 C-상태에 진입한 코어 영역(105)에 대응하여 normal_power_consumed_idle에서 reduced_power_consumed_idle로 감소될 수 있다.
일 실시예에서, 전력 관리 유닛(168)은 코어 영역(105)의 패키지 C-상태로부터 정상 모드로의 엑시트 이벤트(exit event)의 개시를 검출할 수 있다. 엑시트 이벤트의 개시 검출에 대응하여, 전력 관리 유닛(168)은 정상 기준 전압에 해당하는 VID_N 값을 생성할 수 있으며, VID_N 값은 전압 레귤레이터(195)로 제공될 수 있다. 일 실시예에서, VID_N 값을 수신하는 것에 대응하여, 전압 레귤레이터(195)는 VR 값을 VR_reduced 에서 VR_normal(또는 VR_peak) 값으로 증가시킬 수 있다. 결과적으로, 비코어 영역(150)의 서플라이 핀(104)에서 제공되는 전압은 VPmin 값으로 또는 그보다 약간 초과하여 유지될 수 있다. 일 실시예에서, VR_reduced에서 VR_normal로의 기준 전압 변경들 및 VP_reduced에서 VP_idle(또는 VP_normal)로의 VP 변경들은, 코어 영역(105)에 의해 유발된 활동을 비코어 영역(150)이 감지하기 이전에 엑시트 레이턴시 이내에서 또한 발생할 수 있다. 따라서, 최소 전압 VPmin 레벨들은 프로세서(100)의 성능에 영향을 미치는 것 없이 유지될 수 있다.
도 2에는 코어 영역(105)의 일 실시예로서 대응하는 동적 커패시턴스 Cdyn 를 결정하는 것이 도시되어 있다. 일 실시예에서, 코어(210)는 총 커패시턴스 CTotal(220)로 나타낼 수 있으며, 동적 커패시턴스 Cdyn(240)는 (CTotal(220) * 활동도) 가 될 수 있다. 일 실시예에서, Cdyn(240)는 처리되고 있는 애플리케이션(또는 코드)에 기초하여 달라질 수 있다. 예를 들어, 파워 바이러스(power virus)와 같은 몇몇 애플리케이션들 및 HPC는 메인스트림 애플리케이션들과 같은 일부 다른 애플리케이션들에 비해 더 높은 활동 레벨들을 나타낼 수 있다. 따라서, Cdyn(240)는 CTotal(220)의 일부 일 수 있다.
도 3에는 각종 애플리케이션 타입들의 Cdyn 대 작업 부하의 그래프(300)가 도시되어 있다. 그래프(300)는 Y-축(310) 및 X-축(320)을 포함하며, 이것은 정규화된 Cdyn 및 각종 애플리케이션 타입의 작업 부하에 기초하여 사용가능한 애플리케이션들의 대략적 개수를 각각 나타낼 수 있다. 일 실시예에서, 그래프(300)는 아이들 애플리케이션(idle application)들(330)과, 그 뒤를 따르는 많은 개수의 메인스트림 애플리케이션들(340), HPC(high performance computing) 애플리케이션들(350), 및 파워 바이러스 애플리케이션들(360)과 같은 각종 애플리케이션들을 포함할 수 있다. 일 실시예에서, 프로세서(100)는 선(345)으로 표시된 0.55의 낮은 애플리케이션 비율로 스로틀을 설정하는 것에 의해 메인스트림 애플리케이션들(340)에 대해서 최적화될 수 있다. 그러나, 프로세서(100)가 HPC 애플리케이션들에 대해 최적화될 경우에는, 선(355)으로 표시된 0.633의 높은 애플리케이션 비율로 스로틀이 설정될 수 있다. 일 실시예에서, 상기 애플리케이션 비율 은 파워 바이러스(PV)와 같은 가장 높은 전력 소모 애플리케이션에 의해 소모되는 전력과 비교되는, 소정 애플리케이션에 대해 소모되는 전력의 비율을 지칭할 수 있다. 다른 실시예에서, 애플리케이션 비율 은 또한 리얼 애플리케이션(real application)과 파워 바이러스 애플리케이션의 비율을 지칭할 수도 있다.
일 실시예에서, 파워 바이러스 애플리케이션(360)이 처리되는 경우, 타겟 값(허용되는 Cdyn)은, Cdyn_actual 대 타겟 값의 비교가 HPC 애플리케이션들(350) 또는 메인스트림 애플리케이션들(340)의 처리 동안의 것과 비교하여 소정 시간 간격에서 더 적은 개수의 인스트럭션들이 실행 유닛들에 도달할 수 있게 하는 더욱 제약된(즉, 더 높은) 스로틀링 값을 설정하도록 하는 값으로 설정될 수 있다. 일 실시예에서, 위에서 논의된 전력 관리 기술은 프로세서(100)에 의해 파워 바이러스 애플리케이션이 처리되게 할 수 있으며, 인스트럭션들의 스로틀링은 더 적은 개수의 인스트럭션들이 처리될 수 있게 하는 더욱 제약된(즉, 더 높은) 스로틀링 값을 설정할 수 있다. 이러한 접근 방식은 높은 전력 애플리케이션(예컨대, 파워 바이러스)이 애플리케이션들이 처리될 수 있는 주파수를 제한하는 상태를 방지하게 한다. 또한, 상기 높은 전력 애플리케이션을 처리하는 동안 도출되는 전류는 가장 낮은 동작 전압(및 그에 따른 주파수)이 스로틀 레벨로 설정될 수 있도록 감소된다. 또한, 이러한 접근 방식은 사용자로 하여금 프로세서를 모니터링 및 환경설정할 수 있게 함으로써 머신 스페시픽 레지스터 MSR(111)을 환경설정하는 것에 의해 실시간으로 HPC 코드 또는 메인스트림 코드에 대해 최적화되도록 할 수 있다.
도 4에는 전술한 전력 관리 기술들을 수행하는 동작의 코어 영역(105)의 동작을 나타내는 흐름도가 도시되어 있다. 블록 410에서, 활동 센서들(179) 또는 데이터 패턴 센서들(505)은 IFU(510), IQ(520), 및 EU(550)와 같은 하나 이상의 기능 유닛들의 데이터 경로들 또는 포트들에 제공되는 데이터 및 아키텍처 이벤트들의 패턴에 기초하여 활동 값/레벨을 생성할 수 있다. 일 실시예에서, 활동 값들은 활동 축적 로직 AAL(570)에 제공될 수 있다.
블록 420에서, 활동 축적 로직 AAL(570)은 데이터 패턴(또는 활동) 센서들로부터 활동 값들을 수신할 수 있으며 또한 축적된 활동 값을 생성할 수 있다. 일 실시예에서, AAL(570)은 가중 로직(610), 합산 유닛들(630, 640, 650, 및 660), 및 어큐뮬레이터(accumulator)(670)를 포함할 수 있다. 일 실시예에서, 가중 로직(610)은 가중 요소들(610-A 내지 610-H)을 포함할 수 있고, 각각의 가중 요소들(610-A 내지 610-D)은 IFU(510), IQ(520), 및 EU(550)과 같은 기능 유닛들로부터 데이터 입력들(605-A 내지 605-D)을 수신할 수 있으며, 그렇게 수신되는 데이터 입력들(605-A 내지 605-D)은 행해지고 있는 작업을 표시할 수 있다. 일 실시예에서, 기능 유닛들(510, 520, 및 550)로부터 수신된 데이터 입력들(605-A 내지 605-D)은 매 사이클마다 업데이트될 수 있으며, 이러한 데이터 입력들(605-A 내지 605-D)의 폭은 128 비트보다 작을 수 있다. 일 실시예에서, 기능 유닛들로부터 수신된 데이터 입력들(605-A 내지 605-D)은 작동 전력을 나타낼 수 있으며, 예를 들어, 플로팅 포인트 유닛 디지털 활동도(FPUDAF), 인스트럭션 페치 및 리스티어 디지털 활동도(IFRDAF), 및 이러한 다른 유사 입력값들을 포함한다. 일 실시예에서, 데이터 입력들(605-A 내지 605-D)은 합산 유닛(630)에 가중처리된 입력들을 제공하기 이전에 미리결정된 로직에 기초하여 가중 값이 제공될 수 있다. 일 실시예에서, 가중 요소들(610-E 내지 610-H)은 소모되고 있는 데이터를 나타내는 레지스터 파일들로부터 데이터 입력들(605-E 내지 605-H)을 수신할 수 있다. 일 실시예에서, 데이터 입력들(605-E 내지 605-H)은 매 128 사이클마다 업데이트될 수 있으며, 가중 요소들(610-E 내지 610-H)은 합산 유닛(640)으로 가중처리된 입력들을 제고하기 이전에 데이터 입력들(605-E 내지 605-H)로 가중 값들을 제공할 수 있다. 일 실시예에서, 합산 유닛들(650 및 660) 및 어큐뮬레이터(670)는 적절한 폭(예컨대, 44 비트 폭)의 축적된 활동 값을 함께 생성할 수 있다. 일 실시예에서, 합산 유닛(650)은 640으로부터의 데이터 입력 합을 650으로부터의 활동 입력 합과 합산할 수 있다. 일 실시예에서, 어큐뮬레이터 래치(670)는 어큐뮬레이터 합산기(660)를 통하여 그 값을 피드백할 수 있으며, 적절한 폭의 축적된 활동 값을 생성할 수 있다.
블록 430에서, 스로틀링 로직 TL(560)은 AAL(560)에 의해 제공되는 축적된 활동 값을 수신할 수 있으며, 동적 커패시턴스(Cdyn) 값을 생성할 수 있다. 일 실시예에서, 스로틀링 로직 TL(560)은 CTotal 및 축적된 활동 값에 기초하여 Cdyn_actual을 결정할 수 있다. 블록 450에서, 스로틀링 로직 TL(560)은 Cdyn_actual을 캘리브레이팅하여 전력 스코어 값을 나타낼 수 있다.
블록 460에서, 스로틀링 로직 TL(560)은 Cdyn_actual 값에 기초하여 생성된 전력 스코어를, 전력 관리 유닛 PMU(580)에 의해 제공된 타겟 값과 비교할 수 있다. 일 실시예에서, PMU(580)에 의해 제공된 타겟 값은 전력 스코어로서 캘리브레이팅된 허용되는 Cdyn 값을 나타낼 수 있다. 일 실시예에서, 사용자는 HPC 애플리케이션들(350) 용으로 프로세서를 최적화할 수 있고, 허용되는 Cdyn 값은 0.633의 애플리케이션 비율이 될 수 있으며, 이것은 전력 스코어 값으로 캘리브레이팅될 수 있다. 일 실시예에서, 활동 레벨들, 축적된 활동 값, the Cdyn_actual, 및 전력 스코어는 코어 영역(105)이 파워 바이러스 애플리케이션(360)을 처리하고 있는 경우 더 높은 값을 나타낼 수 있다.
블록 470에서, TL(560)는 허용되는 Cdyn에 상응하는 전력 스코어와 Cdyn_actual에 상응하는 전력 스코어를 비교하여, 그 전력 스코어가 타겟 값보다 작은 경우 블록 480으로 그렇지 않은 경우에는 블록 490으로의 경로들을 제어한다. 일 실시예에서, TL(560)는 전력 스코어가 타겟 값보다 작은 경우 제 1 신호를 생성할 수 있고, 또한 전력 스코어가 타겟 값보다 큰 경우 제 2 신호를 생성할 수 있다. 상기 예에서, TL(560)는 파워 바이러스(PV) 애플리케이션(360)에 상응하는 (즉, Cdyn_actual으로 캘리브레이팅된) 전력 스코어를, HPC 애플리케이션(350)에 상응하는 허용되는 Cdyn에 대해 설정될 수 있는 타겟 값과 비교할 수 있으며, TL(560)는 전력 스코어가 타겟 값보다 클 때에 제 2 신호를 생성할 수 있다.
블록 480에서, 조절기(530)는 제 1 신호를 수신하는 것에 대응하여 인스트럭션들의 스로틀링을 유지 또는 감소시킬 수 있다. 일 실시예에서, 제 1 신호는 보다 많은 인스트럭션들이 Cdyn 엔빌로프 또는 전력 스코어 엔빌로프를 초과함없이 처리될 수 있으며 조절기(530)가 스로틀링을 감소(또는 인스트럭션 스루풋을 증가)시킬 수 있다는 것을 나타낼 수 있다. 반면에, 인스트럭션 스루풋이 타겟 값보다 작지만 타겟 값에 매우 근접함을 제 1 신호가 나타내는 경우, 조절기(530)는 스로틀링 레벨을 변경함 없이 인스트럭션 스루풋을 유지할 수 있다.
블록 490에서, 조절기(530)는 인스트럭션들의 스로틀링을 증가시킴으로써 전력 소모가 TDP 엔빌로프 이내에 존재하는 것을 보장할 수 있다. 일 실시예에서, 전력 스코어가 타겟 값보다 큰 경우에는, 스로틀링 레벨을 증가시킴으로써 인스트럭션 스루풋을 감소시키며, 이에 따라 더 적은 인스트럭션들이 실행 유닛들에 도달하도록 할 수 있다. 상기 예에서, 조절기(530)는 스로틀링 레벨을 급속히 증가시켜서 인스트럭션 스루풋을 감소시킬 수 있다. 활동 레벨들(또는 Cdyn_actual)에 기초하여 인스트럭션들을 스로틀링하는 것의 결과로서, 스로틀링은 상이한 시간 도메인들, 예컨대 3rd 드룹(1 마이크로초) 및 TDP(thermal design point)(1 밀리초)로 구현될 수 있으며, 이것은 프로세서(100)의 코어 영역(105)에서의 전력 소모를 제어하는 롱 텀(즉, TDP) 및 숏 텀(즉, 3rd 드룹) 연산들을 가능하게 할 수 있다.
도 7에는, 스로틀이 있고 없고에 따른 순간 활동의 플롯을 나타내는 그래프(700)가 도시되어 있다. 그래프(700)는 애플리케이션 비율을 나타내는 Y-축(710) 및 시간(마이크로초 단위)을 나타내는 X-축(740)을 포함한다. 일 실시예에서, 작은 지속시간 T1보다 작은 지속시간 동안 일어날 수 있는 버스트(burst) 활동(순간 활동)이 임의의 스로틀링에 대해 허용될 수 있는 경우, 스로틀링되는 것 없이 허용될 수 있는 버스트 활동(750)이 그래프(700)에 나타나 있다. 그러나, 일 실시예에서, 지연(sustained) 활동이 발생하는 경우(이것은 지속시간 T1을 초과하여 발생할 수 있음), 전술한 전력 관리 기술이 인스트럭션들을 스로틀링하는 것을 시작할 수 있다. 그래프(700)는 이러한 지연 활동(760)을 도시하고 있으며, 이것은 스로틀링 활동(throttled activity)(770)으로 나타낸 바와 같이 스로틀링될 수 있다. 비-스로틀링된 채로 놔두면, 지연 활동(760)이 지속시간 T2동안 일어날 수 있다는 것이 관측될 수 있지만, 일 실시예에서, 지연 활동(760)은 전술한 전력 관리 기술을 사용하여 스로틀링될 수 있다. 스로틀링의 결과로서, 인스트럭션 분산 또는 인스트럭션 스루풋이 달라질 수 있고, 지연 활동(760)은 더 긴 지속시간 T3을 통하여 전개될 수 있으며, 이러한 스프레드 아웃 활동(spread out activity)은 스로틀링 활동(770)으로 지칭될 수 있다.
도 8에는 시간 간격 동안 요구되는 평균 활동과 허용된 평균 활동의 플롯을 나타내는 그래프(800)가 도시되어 있다. 그래프(800)는 애플리케이션 비율을 나타내는 Y-축(810) 및 시간(마이크로초 단위)을 나타내는 X-축(840)을 포함한다. 일 실시예에서는, 요구되는 평균 활동이 플롯(830)으로 표현될 수 있고, 허용되는 평균 활동은 플롯(820)으로 표현될 수 있다. 일 실시예에서, 시간 간격 T5 를 통해 요구되는 평균 활동은 1의 피크(peak) 애플리케이션 비율을 가질 수 있다. 그러나, 일 실시예에서는, 피크 애플리케이션 비율이 전술한 전력 관리 기술에 의해 허용되지 않을 수도 있다. 대신에, 더 낮은 애플리케이션 비율(예컨대, 0.8)이 허용될 수 있고, 허용된 스로틀링 평균 활동(820)이 일어날 수 있는 시간 간격은 T6이며, 이것은 T5보다 더 클 수 있다.
도 9에는 코어 영역(105)이 패키지 C-상태에 있는 동안 비코어 영역(150)에 의해 소모되는 유휴 전력을 감소시키도록 하는 전력 관리 유닛 PMU(168) 및 전압 레귤레이터(195)를 포함하는 전력 관리 경로의 동작의 일 실시예가 도시되어 있다.
블록 910에서, PMU(168)는 코어 영역(105)이 패키지 C-상태에 진입했는지의 여부를 체크하여 코어 영역(105)이 패키지 C-상태에 진입한 경우 블록 915로의 경로들을 제어할 수 있으며, 또한 PMU(168)는 코어 영역(105)이 딥 전력 절감 상태(또는 패키지 C-상태)에 진입하는 것을 기다릴 수 있다.
블록 915에서, PMU(168)은 전압 레귤레이터(195)에 제공될 제 1 전압 값(전술한 FVID 또는 VID_R)을 생성하여 프로세서(100)의 비코어 영역(150)에 공급할 수 있다. 일 실시예에서, FVID 또는 VID_R 은 전압 레귤레이터(195)가 그에 기초하여 기준 전압 VR(= VR_reduced) 을 생성할 수 있는 디지털 값(9 비트 값)을 나타낼 수 있다. 블록 920에서, PMU(168)는 FVID를 전압 레귤레이터(195)에게 제공할 수 있다.
블록 930에서, 전압 레귤레이터(195)는 FVID 값에 기초하여 정상 기준 전압 (VR_normal)에서 감소된 기준 전압 (VR_reduced)으로 VR을 변경할 수 있다. 일 실시예에서, VR은 1 볼트의 VR_normal 에서 0.96 볼트의 VR_reduced 값으로 감소될 수 있다.
블록 940에서는, VR_normal로부터 VR_reduced로의 VR 변경의 결과로서, 서플라이 핀(194)에 제공되는 전압 VP가 VP_reduced로 변경될 수 있다. 일 실시예에서는, 1 볼트에서 0.96 볼트로의 VR 변경에 대응하여, 전술한 바와 같이 VP는 0.972 볼트의 VP_idle 에서 0.932 볼트로 감소될 수 있다.
블록 945에서는, VP_idle로부터 VP_reduced로의(즉, 0.972 볼트에서 0.932 볼트로의) VP 변경의 결과로서, 비코어 영역(150)의 서플라이 핀(194)에 VP_reduced (=0.932 볼트)의 핀 전압이 제공될 수 있다. 비코어 영역(150)에 제공된 전압 값 저감의 결과로서, 비코어 영역(150)에 의해 소모되는 유휴 전력도 또한 감소될 수 있다(예를 들면, 16.95 와트에서 14.988 와트로 감소될 수 있으며, 전술한 바와 같이 이것은 1.96 와트의 전력 절감을 야기함).
블록(950)에서, PMU(168)는 코어의 패키지 C-상태 엑시트 이벤트(exit event)를 체크할 수 있으며, PMU(168)가 패키지 C-상태 엑시트 이벤트를 검출한 경우에는, 블록 960으로의 경로들을 제어할 수 있다. 일 실시예에서, 블록(950)의 PMU(168)에 의해 수행되는 동작은 블록들(915 내지 945)에서의 동작과 동시에 및 독립적으로 수행될 수 있다.
블록 960에서는, 코어 영역(105) 또는 코어 영역(105) 내의 프로세싱 코어(110)가 패키지 C-상태로부터 엑시트하여 액티브 상태에 진입하기 이전에, PMU(168)는 블록들 965 내지 990을 수행할 수 있다. 블록 965에서, PMU(168)는 전압 레귤레이터(195)에 제공될 제 2 전압 값(전술한 SVID 또는 VID_N)을 생성하여 프로세서(100)의 비코어 영역(150)에 공급할 수 있다. 일 실시예에서, SVID 또는 VID_N 은 전압 레귤레이터(195)가 그에 기초하여 기준 전압 VR(= VR_normal)을 생성할 수 있는 디지털 값(9 비트 값)을 나타낼 수 있다. 블록 970에서, PMU(168)는 SVID(또는 VID_N)를 전압 레귤레이터(195)로 제공할 수 있다.
블록 975에서, 전압 레귤레이터(195)는 SVID 값에 기초하여 VR_reduced에서 정상 기준 전압 (VR_normal)로 VR을 변경할 수 있다. 일 실시예에서, VR은 0.96 볼트의 VR_reduced 값에서 1 볼트의 VR_normal 값으로 증가될 수 있다.
블록 980에서는, VR_reduced에서 VR_normal로의 VR 변경의 결과로서, 서플라이 핀(194)에 제공되는 전압 VP가 VP_idle로 변경될 수 있다. 일 실시예에서, VP는 0.96 볼트에서 1 볼트로의 VR 변경에 반응하여, 전술한 바와 같이 VP_reduced(0.932) 볼트에서 0.972 볼트로 증가될 수 있다.
블록 990에서, 부하 레지스터 RL(192)를 통해 흐르는 전류는 VP_reduced에서 VP_idle로(즉, 0.932 볼트에서 0.972 볼트로)의 VP 변경과 ICC_idle에서 ICC_peak 로의 전류 변경의 결과로서, ICC_idle(20 암페어)에서 ICC_peak(=50 암페어)로 변경될 수 있으며, 전압 VP(=0.93 볼트)이 비코어 영역(150)의 서플라이 핀(194)에 제공될 수 있다.
도 10(a), 10(b), 및 10(c)에는 전술한 전력 관리 기술의 사용 여부에 따른 정상 및 유휴 조건들 하에서의 전압 레귤레이터(195)의 동작의 일 실시예가 도시되어 있다. 도 10(a)에서, 비코어(150)가 피크에서 작동하고 있는 동안, 기준 전압 VR은 VR_normal이 될 수 있고, ICC(193)은 ICC_peak가 될 수 있으며; 핀 전압 VP는 VP_idle이 될 수 있다. 일 실시예에서, VP_idle은 {[VR_normal - (ICC_peak *RL(192))]} 이 될 수 있다.
예를 들어, VR_normal = 1 볼트, ICC_peak = 50 암페어, RL192 = 1.4 밀리옴인 경우, VP_idle = 1 - (50 * 1 .4) = 0.93V 이다. 프로세서(100)가 그 부품에 대해 명시된 주파수 F(예컨대, =2.53GhZ)에서 작동해야 하는 경우, 최소값의 전압(=0.93 볼트)이 VP_idle 로서 제공될 것이다.
그러나, 도 10(b)에 나타낸 바와 같이, 코어 영역(105)이 패키지 C-상태에 있는 경우, 부하 레지스터 RL(192)를 통해 흐르는 전류 ICC(193)는 ICC_idle(예컨대, =20A)로 변경될 수 있으며, 그러면 VP_idle은 [VR_normal - (ICC_idle*RL(192))]이 되며, 즉, VP_idle = 1 - (20 * 1.4) = 0.972V가 된다. 그러나, 0.93V의 VP_idle 은 그 부품에 대해 명시된 주파수 F에서 프로세서(100)를 작동시키기에 충분하며, (VP_idle - 최소값의 전압 = 0.972 - 0.93 = 0.042V)의 과잉 전압이 비코어 영역(150)에 제공되게 된다. 과잉 전압은 필요로 하는 것보다 더 많은 전력의 과잉 소모를 야기할 수 있다. 결과적으로, 전력 소모, P_normal = 동적 전력 + 누설 전력, P_normal = Cdyn*V2*f + f(V4), = 5nf*(0.972*0.972)*2.53Ghz + 5와트, = (11.95 + 5) = 16.95 와트가 된다.
VP를 감소시키기 위해, VR은 도 10(c)에 나타낸 바와 같이 VR_normal에서 VR_reduced 로 감소될 수 있다. VR_uncore를 감소시키기 위해, PMU(168)는 (블록 915에서 기술된 바와 같이) FVID를 생성하고, 그 FVID를 (블록 920에서 기술된 바와 같이) 전압 레귤레이터(195)로 제공할 수 있다. FVID를 수신하는 것에 대응하여, 전압 레귤레이터(195)는 VR을 VR_reduced(예컨대, = 0.96V)로 감소시킬 수 있다. VR_normal 에서 VR_reduced 로의 VR 변경에 대응하여, VP_idle은 VP_reduced(= 0.96-(20 *1.4)=0.96-0.028 = 0.932V)이 된다. 결과적으로, 전력 소모 P_reduced = Cdyn*V2*f+f(V4) = 5nf*(0.932*0.932)*2.53Ghz+4와트 = (10.988 + 4) = 14.988 와트가 된다. 그러므로, 절감된 전력 = P_normal - P_reduced = 16.95 - 14.988 = 1 .96 와트가 된다.
그래프 1100, 1140, 및 1160은 딥 전력 절감 상태(패키지 C-상태)에 진입한 코어 영역(105)에 대응하는 비코어 영역(150)의 영향을 도시하고 있으며, 이것이 각각 도 11의 (a), 도 11의 (b), 및 도 11의 (c)로 나타나 있다. 일 실시예에서, 도 11의 (a)의 그래프는 시간을 나타내는 X-축(1101) 및 전류(ICC(193))를 나타내는 Y-축(1102)을 포함한다. 일 실시예에서, ICC(193)는 코어 영역(105)이 엔트리 포인트(1105) 앞의 영역으로 표시된 패키지 C-상태에 진입하기 이전에 ICC_peak(1106)(예컨대, =50 암페어)가 될 수 있다. 엔트리 포인트(1105)에서, 코어 영역(105)은 패키지 C-상태에 진입하기 시작할 수 있으며, 포인트(1105)에의 진입 이벤트에 대응하여, 전류 ICC(193)는 포인트(1108)에서 ICC_peak로부터 ICC_idle(=20암페어)로 변경될 수 있으며, 또한 ICC_idle 레벨은 ICC_idle(1107)로 표시될 수 있다. 일 실시예에서, 엑시트 포인트(1109)에서, ICC(193)는 ICC_idle(1107)에서 ICC_peak(1106)로 변경될 수 있으며, 코어 영역(105)의 엑시트 이벤트는 타임 포인트(1110)에서 완료될 수 있다. 일 실시예에서, 포인트들(1108 및 1105)간의 시간 차이는 엔트리 레이턴시를 나타낼 수 있으며, 포인트들(1109 및 1110)간의 시간 차이는 엑시트 레이턴시를 나타낼 수 있다.
도 11의 (b)는 ICC_peak(1106)에서 ICC_idle(1107)로의 전류 변경 및 다시 ICC_idle(1107)에서 ICC_peak(1106)로의 전류 변경에 대응하는 기준 전압 VR 및 핀 전압 VP에서의 변동을 나타낸다. 일 실시예에서, 도 11의 (b)의 그래프는 기간을 나타내는 X-축(1111) 및 전압(VR 및 VP)을 나타내는 Y-축(1112)을 포함한다. 엔트리 포인트(1105) 이전에, 전압 기준 VR 및 VP는 각각 VR_normal(1113) 및 VP_idle 또는 VP_normal(1115)이 될 수 있다. 엑시트 포인트(1109) 이후에, 전압 기준 VR 및 VP는 각각 VR_normal(1113) 및 VP_idle(1115)이 될 수 있다. 포인트(1105)에의 진입 이벤트 발생에 대응하여, 전압 레귤레이터(195)는 FVID(또는 VID_R)을 수신할 수 있으며, 기준 전압 VR은 VR_normal(1113)(예컨대, =1 volt)에서 VR_reduced(1114)(예컨대, =0.96 볼트)로 변경될 수 있다. VR_normal(1113)에서 VR_reduced(1114)로의 기준 전압 VR의 변경에 대응하여, 서플라이 핀(194)에서의 핀 전압 VP는 VP_idle(1115)(예컨대, =0.972)에서 VP_reduced(1116)(예컨대, = 0.932 볼트)로 감소될 수 있다. 일 실시예에서, 코어 영역(105)이 딥 전력 절감 상태를 유지하는 지속시간을 나타낼 수 있는 타임 포인트들(1108 및 1109) 사이에서 기준 전압 VR 및 핀 전압 VP는 각각 VR_reduced(1114) 및 VP_reduced(1116)로 유지될 수 있다.
도 11의 (c)는 VP_idle(1115)에서 VP_reduced(1116)로의 핀 전압 VP의 변경에 대응하여 소모되는 전력의 변동을 나타낸다. 일 실시예에서, 도 11의 (c)의 그래프는 시간을 나타내는 X-축(1121) 및 전력 소모를 나타내는 Y-축(1122)을 포함한다. 엔트리 포인트(1105) 이전에, power Consumed_idle 은 정상 전력 소모(1123)(예컨대, = 16.95 와트)가 될 수 있다. 엑시트 포인트(1109) 이후에, power Consumed_idle 은 이전 레벨의 정상 전력 소모(1123)에 다시 도달할 수 있다. 일 실시예에서, 패키지 C-상태에 진입하는 코어 영역(105)에 대응하여, 비코어 영역(150)에 의해 소모되는 전력은 감소된 전력 소모(1124)(예컨대, = 14.988 와트)로 줄어들 수 있다. 일 실시예에서, 핀 전압 VP이 VP_idle(1115)에서 VP_reduced(1116)으로 줄어들게 되므로, 비코어 영역(150)에 의해 소모되는 전력이 감소될 수 있고 또한 비코어 영역(150)에 의해 소모되는 전력도 서플라이 핀(164)에 제공되는 핀 전압의 제곱에 비례하게 될 수 있다. 일 실시예에서, 전력 절감의 양은 (Power Consumed_idle - 감소된 전력 소모) = (16.95 - 14.988) = 1 .95 볼트가 될 수 있다.
도 12를 참조하면, 컴퓨터 시스템(1200)은 싱글 인스트럭션 멀티플 데이터(SIMD) 및 그래픽스 프로세서 유닛(GPU)(1205)을 포함하는 범용 프로세서(1202)를 포함할 수 있다. 프로세서(1202)는, 일 실시예에서, 각종 다른 임무들을 수행하는 이외에 인핸스먼트 연산들을 수행하거나 인핸스먼트 연산들을 머신 판독가능 저장매체(1225)에 제공하기 위한 일련의 인스트럭션들을 저장할 수 있다. 그러나, 일련의 인스트럭션들은 또한 메모리(1220) 또는 임의의 다른 적절한 저장매체에 저장될 수도 있다.
도 12에는 개별 그래픽스 프로세서 유닛(1205)이 도시되어 있지만, 일부 실시예들에서는, 그래픽스 프로세서 유닛(1205)이 다른 예와 같은 인핸스먼트 연산들을 수행하는데 사용될 수 있다. 컴퓨터 시스템(1200)을 동작시키는 프로세서(1202)는 로직(1230)에 커플링된 하나 이상의 프로세서 코어일 수 있다. 로직(1230)은 컴퓨터 시스템(1200)과의 인터페이스를 제공할 수 있는 하나 이상의 I/O 디바이스들(1260)에 커플링될 수 있다. 일 실시예에서, 로직(1230)은 예를 들어 칩셋 로직일 수 있다. 로직(1230)은 광학, 자기, 또는 반도체 저장소를 포함하는 임의 종류의 저장소일 수 있는 메모리(1220)에 커플링된다. 그래픽스 프로세서 유닛(1205)은 프레임 버퍼를 통해 디스플레이(1240)에 커플링된다.
일 실시예에서, 프로세서(1202)는 코어 영역(1203) 및 비코어 영역(1204)을 포함할 수 있다. 일 실시예에서, 프로세서(1202)의 코어 영역(1203)에 의해 소모되는 전력은 프로세서(1202)의 Cdyn를 제어하는 것에 의해 조절될 수 있다. 일 실시예에서, Cdyn는 코어 영역(1203)에 의해 처리되고 있는 애플리케이션(또는 코드)에 관계없이 그 Cdyn가 허용되는 Cdyn 값 이내가 되도록 제어될 수 있다. 일 실시예에서, 전력 관리 기술은 전술한 바와 같이 디지털 활동도(DAF)를 측정하는 것과, 아키텍처 및 데이터 활동 레벨들을 모니터링하는 것과, 활동 레벨들에 기초하여 인스트럭션들을 스로틀링하는 것에 의해 전력 소모를 제어하는 것을 포함할 수 있다. 활동 레벨들(또는 Cdyn_actual)에 기초하여 인스트럭션들을 스로틀링하는 것의 결과로서, 스로틀링은 상이한 시간 도메인들, 예컨대 3rd 드룹(1 마이크로초) 및 TDP(thermal design point)(1 밀리초)로 구현될 수 있으며, 이것은 프로세서의 코어 영역에서의 전력 소모를 제어하는 롱 텀(즉, TDP) 및 숏 텀(즉, 3rd 드룹) 연산들을 가능하게 할 수 있다. 일 실시예에서, 이러한 접근방식은 코드가 부스트 모드(이것은 처리되고 있는 코드에 반응할 수 있음)와 비교하여 처리되고 있는 동안에 그 코드를 제어하는 부스트 모드들을 생성하기 위한 정교한 전력 관리 기술 및 능력을 제공할 수 있다.
일 실시예에서, 비코어 영역(1204)에 의해 소모되는 유휴 전력(즉, 코어 영역이 패키지 C-상태와 같은 딥 전력 절감 상태들에 있는 동안 비코어 영역에 의해 소모되는 전력)은 비코어 영역(1204)에 제공되는 전압(즉, 기준 전압 VR)을 달라지게 하는 것에 의해 저감될 수 있다. 일 실시예에서, 전압 레귤레이터(1206)의 출력은 부하 레지스터를 통해서 비코어 영역(1204)의 서플라이 핀에 커플링될 수 있다. 코어 영역이 딥 패키지 C-상태에 있는 동안 비코어 영역(1204)의 서플라이 핀에서의 기준 전압 VR 및 이에 따른 핀 전압 VP은 감소될 수 있다. 일 실시예에서, 기준 전압 VR은 VP_idle이 VPmin(또는 VP_peak) 보다 약간 더 큰 값으로 감소하도록 감소될 수 있다. 결과적으로, 기준 전압 VR은 비코어 영역(1204)에 의해 소모되는 유휴 전력을 절감 또는 감소시키도록 달라질 수 있다.
예시적 실시예들을 참조하여 본 발명의 소정 특징들을 설명하였다. 그러나, 상기 설명은 한정 의미로 해석되는 것으로 의도되지 않는다. 본 발명의 예시적 실시예들 및 본 발명의 당업자에게 명백한 다른 실시예들의 여러 가지 수정사항들은 본 발명의 사상 및 범위 내에 있는 것으로 고려된다.

Claims (30)

  1. 전력 관리 유닛과 전압 레귤레이터를 포함하는 비코어 영역-상기 전압 레귤레이터는 레규레이팅된 전압(VR)을 상기 비코어 영역으로 제공할 수 있음-과,
    복수의 기능 블록, 복수의 센서, 활동 축적 로직, 스로틀링 로직(throttling logic), 및 조절기(throttler)를 포함하는 코어 영역을 포함하되,
    상기 복수의 센서는 상기 복수의 기능 블록으로부터 복수의 활동 레벨을 수집하여 상기 복수의 활동 레벨을 상기 활동 축적 로직에 제공할 수 있고, 상기 활동 축적 로직은 축적된 활동 값을 생성하여 축적된 활동 레벨을 상기 스로틀링 로직에 제공할 수 있고, 상기 스로틀링 로직은 상기 축적된 활동 값과 타겟 값의 비교에 기초하여 적응될 스로틀링 레벨을 나타내는 신호를 생성할 수 있고, 상기 조절기는 상기 스로틀링 레벨에 기초하여 실행 유닛들에 제공되는 인스트럭션들을 스로틀링할 수 있는
    프로세서.
  2. 제 1 항에 있어서,
    상기 복수의 센서는 상기 복수의 기능 유닛의 데이터 활동 및 아키텍처 활동을 감지하도록 상기 복수의 기능 유닛의 하나 이상의 포트에 제공되는
    프로세서.
  3. 제 1 항에 있어서,
    상기 스로틀링 로직은 데이터 패턴 관측과 상기 축적된 활동 값에 기초하여 실제의 동적 커패시턴스 값을 결정할 수 있는
    프로세서.
  4. 제 4 항에 있어서,
    상기 스로틀링 로직은 상기 실제의 동적 커패시턴스(Cdyn) 값을 전력 스코어 값으로 캘리브레이팅할 수 있는
    프로세서.
  5. 제 4 항에 있어서,
    상기 스로틀링 로직은 상기 전력 스코어 값을 상기 전력 관리 유닛에 의해 제공되는 타겟 값과 비교할 수 있고, 상기 타겟 값은 허용되는 동적 커패시턴스 값에 기초하여 결정되는
    프로세서.

  6. 제 3 항에 있어서,
    상기 스로틀링 로직은 상기 전력 스코어 값이 상기 타겟 값보다 큰 경우 상기 스로틀링 레벨을 증가시키는 것을 나타내는 신호를 생성할 수 있는
    프로세서.
  7. 제 6 항에 있어서,
    상기 조절기는 상기 스로틀링 레벨을 증가시키는 것을 나타내는 신호를 수신하는 것에 응답하여 인스트럭션 스루풋(instruction throughput)을 감소시킬 수 있고, 상기 인스트럭션 스루풋의 감소는 상기 허용되는 동적 커패시턴스 미만으로 상기 실제의 동적 커패시턴스를 유지하기 위한 것인
    프로세서.
  8. 제 3 항에 있어서,
    상기 스로틀링 로직은 상기 전력 스코어 값이 상기 타겟 값보다 작은 경우 상기 스로틀링 레벨을 감소시키는 것을 나타내는 신호를 생성할 수 있는
    프로세서.
  9. 제 8 항에 있어서,
    상기 조절기는 상기 스로틀링 레벨을 감소시키는 것을 나타내는 신호를 수신하는 것에 응답하여 인스트럭션 스루풋을 증가시킬 수 있는
    프로세서.
  10. 코어 영역과 비코어 영역을 포함하는 프로세서로서,
    상기 비코어 영역은 전력 관리 유닛과 전압 레귤레이터를 포함하고, 상기 전압 레귤레이터는 레귤레이팅된 전압(VR)을 상기 비코어 영역에 제공할 수 있고,
    상기 전력 관리 유닛은 상기 코어 영역이 딥 전력 절감 상태(deep power saving state)에 진입하는 것의 기초가 되는 이벤트를 검출하고, 이에 응답하여 제 1 전압 값을 상기 전압 레귤레이터에 제공할 수 있고,
    상기 전압 레귤레이터는 상기 제 1 전압 값에 기초하여 상기 레귤레이팅된 전압(VR)을 정상 기준 전압 값에서 감소된 기준 전압 값으로 감소시킬 수 있고,
    상기 레귤레이팅된 전압(VR)의 감소는 상기 비코어 영역의 서플라이 핀(supply pin)에 제공되는 핀 전압 값의 감소를 야기하고, 상기 핀 전압 값의 감소는 상기 비코어 영역에 의해 소모되는 전력을 감소시킬 수 있고,
    상기 핀 전압 값은 지정된 주파수 값에서 상기 프로세서를 작동시키는 최소의 핀 전압 값을 유지하기에 충분한 레벨로 감소되는
    프로세서.
  11. 제 10 항에 있어서,
    상기 비코어 영역은 상기 코어 영역이 상기 딥 전력 절감 상태에 있을 때까지 감소된 양의 전력을 소모할 수 있는
    프로세서.
  12. 제 11 항에 있어서,
    상기 코어 영역이 상기 딥 전력 절감 상태에서 작동하고 있고 상기 코어 영역에 의해 상기 비코어 영역으로 주입된 활동이 실질적으로 낮은 동안, 상기 코어 영역에 제공되는 전압은 실질적으로 컷오프(cutoff)되는
    프로세서.
  13. 제 10 항에 있어서,
    상기 전력 제어 유닛은, 상기 코어 영역이 상기 딥 전력 절감 상태에서 빠져나오는 엑시트 이벤트(exit event)를 검출하는 것에 응답하여 제 2 전압 값을 생성하고, 상기 제 2 전압 값을 상기 전압 레귤레이터로 제공할 수 있는
    프로세서.
  14. 제 13 항에 있어서,
    상기 전압 레귤레이터는 상기 제 2 전압 값을 수신하는 것에 응답하여 상기 기준 전압(VR)을 상기 감소된 기준 전압 값에서 상기 정상 기준 전압 값으로 증가시킬 수 있는
    프로세서.
  15. 제 14 항에 있어서,
    상기 정상 기준 전압 값으로의 상기 기준 전압의 증가는 상기 비코어 영역의 상기 서플라이 핀에 적어도 상기 최소 전압 값을 제공하여 상기 프로세서로 하여금 상기 지정된 주파수 값에서 작동하도록 할 수 있는
    프로세서.
  16. 프로세서의 코어 영역에서의 방법으로서,
    복수의 센서를 사용하여 복수의 기능 블록으로부터 활동 레벨을 수집하고, 복수의 활동 레벨을 활동 축적 로직에 제공하는 단계와,
    활동 축적 로직에서 상기 복수의 활동 레벨에 기초하여 축적된 활동 값을 생성하는 단계와,
    스로틀링 로직을 사용하여 상기 축적된 활동 값의 비교에 기초하여 적응될 스로틀링 레벨을 나타내는 신호를 생성하는 단계와,
    상기 신호에 의해 제공되는 상기 스로틀링 레벨에 기초하여 실행 유닛들에 제공되는 인스트럭션들을 스로틀링하는 단계를 포함하되,
    상기 프로세서는 상기 복수의 기능 블록, 상기 복수의 센서, 상기 활동 축적 로직, 상기 스로틀링 로직, 및 조절기를 포함하는 코어 영역을 포함하는
    방법.
  17. 제 16 항에 있어서,
    상기 복수의 기능 유닛의 데이터 활동 및 아키텍처 활동을 감지하도록 상기 복수의 기능 유닛의 하나 이상의 포트에 상기 복수의 센서를 제공하는 단계를 포함하는
    방법.
  18. 제 16 항에 있어서,
    상기 스로틀링 로직에서 데이터 패턴 관측과 상기 축적된 활동 값에 기초하여 실제의 동적 커패시턴스 값을 결정하는 단계를 포함하는
    방법.
  19. 제 18 항에 있어서,
    상기 스로틀링 로직에서 상기 실제의 동적 커패시턴스(Cdyn) 값을 전력 스코어 값으로 캘리브레이팅하는 단계를 포함하는
    방법.
  20. 제 18 항에 있어서,
    상기 스로틀링 로직에서 상기 전력 스코어 값을 전력 관리 유닛에 의해 제공되는 타겟 값과 비교하는 단계를 포함하되,
    상기 타겟 값은 허용되는 동적 커패시턴스 값에 기초하여 결정되는
    방법.
  21. 제 18 항에 있어서,
    상기 스로틀링 로직에서 상기 전력 스코어 값이 상기 타겟 값보다 큰 경우 상기 스로틀링 레벨을 증가시키는 것을 나타내는 신호를 생성하는 단계를 포함하는
    방법.
  22. 제 21 항에 있어서,
    조절기에서 상기 스로틀링 레벨을 증가시키는 것을 나타내는 신호를 수신하는 것에 응답하여 인스트럭션 스루풋을 감소시키는 단계를 포함하되,
    상기 인스트럭션 스루풋의 감소는 상기 허용되는 동적 커패시턴스 미만으로 상기 실제의 동적 커패시턴스를 유지하기 위한 것인
    방법.
  23. 제 18 항에 있어서,
    상기 스로틀링 로직에서 상기 전력 스코어 값이 상기 타겟 값보다 작은 경우 상기 스로틀링 레벨을 감소시키는 것을 나타내는 신호를 생성하는 단계를 포함하는
    방법.
  24. 제 23 항에 있어서,
    상기 조절기에서 상기 스로틀링 레벨을 감소시키는 것을 나타내는 신호를 수신하는 것에 응답하여 상기 인스트럭션 스루풋을 증가시키는 단계를 포함하는
    방법.
  25. 프로세서의 비코어 영역에서의 방법으로서,
    코어 영역이 딥 전력 절감 상태에 진입하는 것의 기초가 되는 진입 이벤트를 검출하는 단계-상기 진입 이벤트는 전력 관리 유닛을 사용하여 검출됨-와,
    상기 전력 관리 유닛을 사용하여 생성되는 제 1 전압 값을 전압 레귤레이터로 제공하는 단계와,
    상기 제 1 전압 값에 기초하여, 레귤레이팅된 전압을 정상 기준 전압 값에서 감소된 기준 전압 값으로 감소시키는 단계와,
    상기 감소된 기준 전압을 상기 비코어 영역으로 제공하는 단계를 포함하되,
    상기 레귤레이팅된 전압(VR)의 감소는 상기 비코어 영역의 서플라이 핀에 제공되는 핀 전압 값의 감소를 야기하고, 상기 핀 전압 값의 감소는 상기 비코어 영역에 의해 소모되는 전력을 감소시킬 수 있으며,
    상기 비코어 영역은 상기 코어 영역에 커플링되어 있고, 상기 비코어 영역은 상기 전력 관리 유닛과 전압 레귤레이터를 포함하는
    방법.
  26. 제 25 항에 있어서,
    상기 제 1 전압 값을 결정하는 단계를 포함하되,
    상기 제 1 전압 값은 지정된 주파수 값에서 상기 프로세서를 작동시키는 최소의 핀 전압 값을 유지하기에 충분한 레벨로 상기 핀 전압 값을 감소시킬 수 있는
    방법.
  27. 제 26 항에 있어서,
    상기 비코어 영역은 상기 코어 영역이 상기 딥 전력 절감 상태에 있을 때까지 감소된 양의 전력을 소모할 수 있는
    방법.
  28. 제 27 항에 있어서,
    상기 코어 영역이 딥 전력 절감 상태에서 작동하고 있는 동안, 상기 코어 영역에 의해 상기 비코어 영역으로 주입되는 활동은 실질적으로 낮은
    방법.
  29. 제 26 항에 있어서,
    상기 코어 영역이 상기 딥 전력 절감 상태에서 빠져나오는 엑시트 이벤트를 검출하는 것에 응답하여 제 2 전압 값을 생성하는 단계와,
    상기 제 2 전압 값을 상기 전압 레귤레이터로 제공하는 단계를 포함하는
    방법.
  30. 제 28 항에 있어서,
    상기 제 2 전압 값을 수신하는 것에 응답하여 상기 기준 전압(VR)을 상기 감소된 기준 전압 값에서 상기 정상 기준 전압 값으로 증가시키는 단계를 포함하는
    방법.
KR1020137024802A 2011-03-21 2012-03-19 멀티-코어 프로세서에서의 전력 소모 관리 KR101515318B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN773/DEL/2011 2011-03-21
IN773DE2011 2011-03-21
US13/422,476 US9069555B2 (en) 2011-03-21 2012-03-16 Managing power consumption in a multi-core processor
US13/422,476 2012-03-16
PCT/US2012/029604 WO2012129147A2 (en) 2011-03-21 2012-03-19 Managing power consumption in a multi-core processor

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020147036961A Division KR101591811B1 (ko) 2011-03-21 2012-03-19 멀티-코어 프로세서에서의 전력 소모 관리

Publications (2)

Publication Number Publication Date
KR20130124575A true KR20130124575A (ko) 2013-11-14
KR101515318B1 KR101515318B1 (ko) 2015-04-24

Family

ID=54187870

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137024802A KR101515318B1 (ko) 2011-03-21 2012-03-19 멀티-코어 프로세서에서의 전력 소모 관리
KR1020147036961A KR101591811B1 (ko) 2011-03-21 2012-03-19 멀티-코어 프로세서에서의 전력 소모 관리

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020147036961A KR101591811B1 (ko) 2011-03-21 2012-03-19 멀티-코어 프로세서에서의 전력 소모 관리

Country Status (8)

Country Link
US (2) US9069555B2 (ko)
JP (2) JP2014514641A (ko)
KR (2) KR101515318B1 (ko)
CN (1) CN103492976B (ko)
DE (1) DE112012001358B4 (ko)
GB (1) GB2503367B (ko)
TW (1) TWI628537B (ko)
WO (1) WO2012129147A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160066542A (ko) * 2013-12-23 2016-06-10 인텔 코포레이션 부하 라인 최적화를 위한 그래픽 전압 감소

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US9594412B2 (en) * 2012-03-30 2017-03-14 Intel Corporation Controlling power gate circuitry based on dynamic capacitance of a circuit
JP5981020B2 (ja) * 2012-04-24 2016-08-31 インテル コーポレイション 効率的な消費電力管理のための動的インタラプト再コンフィグレーション
US9218045B2 (en) * 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9335813B2 (en) * 2013-05-28 2016-05-10 Intel Corporation Method and system for run-time reallocation of leakage current and dynamic power supply current
US9250910B2 (en) * 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US10108454B2 (en) * 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9874927B2 (en) * 2014-06-26 2018-01-23 Intel Corporation Method and apparatus for precision CPU maximum power detection
US9864551B2 (en) * 2014-08-29 2018-01-09 Hewlett Packard Enterprise Development Lp Determining throughput based on system busy level
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9477243B2 (en) 2014-12-22 2016-10-25 Intel Corporation System maximum current protection
EP3238006A4 (en) * 2014-12-23 2018-07-25 Intel Corporation Adjustment of voltage regulator based on power state
US9880601B2 (en) 2014-12-24 2018-01-30 Intel Corporation Method and apparatus to control a link power state
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9760160B2 (en) * 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
KR20170000625A (ko) 2015-06-24 2017-01-03 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US9952651B2 (en) 2015-07-31 2018-04-24 International Business Machines Corporation Deterministic current based frequency optimization of processor chip
US9568982B1 (en) 2015-07-31 2017-02-14 International Business Machines Corporation Management of core power state transition in a microprocessor
US9874917B2 (en) 2016-01-04 2018-01-23 International Business Machines Corporation Adaptive power capping in a chip
US9971390B1 (en) 2016-01-05 2018-05-15 Apple Inc. Processor energy consumption rate limiting system
US10048738B2 (en) * 2016-03-03 2018-08-14 Intel Corporation Hierarchical autonomous capacitance management
US10209726B2 (en) * 2016-06-10 2019-02-19 Microsoft Technology Licensing, Llc Secure input voltage adjustment in processing devices
US10268255B2 (en) * 2016-06-29 2019-04-23 Intel Corporation Management of system current constraints with current limits for individual engines
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10423206B2 (en) * 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10423209B2 (en) * 2017-02-13 2019-09-24 Apple Inc. Systems and methods for coherent power management
KR20180098904A (ko) 2017-02-27 2018-09-05 삼성전자주식회사 컴퓨팅 장치 및 컴퓨팅 장치에 포함된 복수의 코어들에 전력을 할당하는 방법
US10290289B2 (en) 2017-04-01 2019-05-14 Intel Corporation Adaptive multibit bus for energy optimization
US10481014B2 (en) * 2017-06-15 2019-11-19 Micron Technology, Inc. Adaptive throttling
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
US10627883B2 (en) * 2018-02-28 2020-04-21 Advanced Micro Devices, Inc. Onboard monitoring of voltage levels and droop events
US10969858B2 (en) 2019-01-03 2021-04-06 Apple Inc. Operation processing controlled according to difference in current consumption
US11054882B2 (en) 2019-02-21 2021-07-06 Apple Inc. Externally-triggered throttling
US10921872B2 (en) * 2019-03-29 2021-02-16 Intel Corporation Performing soft throttling and hard throttling in a processor
US11079825B2 (en) * 2019-08-13 2021-08-03 Intel Corporation Compiler guided power allocation in computing devices
KR102372213B1 (ko) 2019-09-09 2022-03-08 한국화학연구원 히알루론산 또는 그의 염 및 폴리페놀 화합물을 포함하는 수분해성 필름
US11416056B2 (en) 2020-09-18 2022-08-16 Apple Inc. Power sense correction for power budget estimator
WO2022236782A1 (zh) * 2021-05-13 2022-11-17 华为技术有限公司 一种功耗调节方法及装置
US11989077B2 (en) * 2021-12-06 2024-05-21 Mediatek Inc. Maximum current suppression for power management in a multi-core system

Family Cites Families (89)

* 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
US6029006A (en) * 1996-12-23 2000-02-22 Motorola, Inc. Data processor with circuit for regulating instruction throughput while powered and method of operation
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US6564328B1 (en) * 1999-12-23 2003-05-13 Intel Corporation Microprocessor with digital power throttle
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 엘지전자 주식회사 씨피유 클럭 제어 방법
US6636976B1 (en) * 2000-06-30 2003-10-21 Intel Corporation Mechanism to control di/dt for a microprocessor
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
JP2002033457A (ja) 2000-07-18 2002-01-31 Hitachi Ltd 半導体集積回路装置
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
US7281140B2 (en) 2001-12-28 2007-10-09 Intel Corporation Digital throttle for multiple operating points
US20030126477A1 (en) * 2001-12-28 2003-07-03 Zhang Kevin X. Method and apparatus for controlling a supply voltage to a processor
US7096145B2 (en) * 2002-01-02 2006-08-22 Intel Corporation Deterministic power-estimation for thermal control
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
WO2004066092A2 (en) 2003-01-23 2004-08-05 University Of Rochester Multiple clock domain microprocessor
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
TW591372B (en) * 2003-05-15 2004-06-11 High Tech Comp Corp Power control method of portable electronic device, portable electronic device and electronic system
US20050046400A1 (en) * 2003-05-21 2005-03-03 Efraim Rotem Controlling operation of a voltage supply according to the activity of a multi-core integrated circuit component or of multiple IC components
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
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
JP4555140B2 (ja) * 2005-04-22 2010-09-29 株式会社日立製作所 複合型計算機装置およびその管理方法
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
US7634678B2 (en) * 2006-02-07 2009-12-15 Omx Technology Ab Application software initiated speedup
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7397703B2 (en) 2006-03-21 2008-07-08 Freescale Semiconductor, Inc. Non-volatile memory with controlled program/erase
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
US7673160B2 (en) 2006-10-19 2010-03-02 International Business Machines Corporation System and method of power management for computer processor systems
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US7730340B2 (en) 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
TWI388974B (zh) * 2007-03-01 2013-03-11 Via Tech Inc 根據工作溫度的變化來動態改變功率損耗的微處理器及方法
US8510581B2 (en) 2007-03-26 2013-08-13 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
US7900069B2 (en) 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7870407B2 (en) * 2007-05-18 2011-01-11 Advanced Micro Devices, Inc. Dynamic processor power management device and method thereof
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 엘지전자 주식회사 전원관리 제어 장치 및 방법
US7949889B2 (en) * 2008-01-07 2011-05-24 Apple Inc. Forced idle of a data processing system
US8977790B2 (en) 2008-02-15 2015-03-10 Freescale Semiconductor, Inc. Peripheral module register access methods and apparatus
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US8028181B2 (en) 2008-09-19 2011-09-27 Intel Corporation Processor power consumption control and voltage drop via micro-architectural bandwidth throttling
US8386807B2 (en) 2008-09-30 2013-02-26 Intel Corporation Power management for processing unit
US8402290B2 (en) 2008-10-31 2013-03-19 Intel Corporation Power management for multiple processor cores
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
US8219831B2 (en) * 2009-01-28 2012-07-10 Oracle America, Inc. Reducing temperature and power by instruction throttling at decode stage of processor pipeline in time constant duration steps
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8356194B2 (en) * 2010-01-28 2013-01-15 Cavium, Inc. Method and apparatus for estimating overshoot power after estimating power of executing events
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160066542A (ko) * 2013-12-23 2016-06-10 인텔 코포레이션 부하 라인 최적화를 위한 그래픽 전압 감소

Also Published As

Publication number Publication date
DE112012001358B4 (de) 2016-08-18
WO2012129147A3 (en) 2013-03-14
WO2012129147A2 (en) 2012-09-27
KR101515318B1 (ko) 2015-04-24
GB201316089D0 (en) 2013-10-23
JP2014514641A (ja) 2014-06-19
CN103492976B (zh) 2017-11-07
US9069555B2 (en) 2015-06-30
GB2503367A (en) 2013-12-25
KR20150016614A (ko) 2015-02-12
DE112012001358T5 (de) 2013-12-24
GB2503367B (en) 2020-10-21
US20130232368A1 (en) 2013-09-05
KR101591811B1 (ko) 2016-02-05
CN103492976A (zh) 2014-01-01
TWI628537B (zh) 2018-07-01
US9075614B2 (en) 2015-07-07
US20120254643A1 (en) 2012-10-04
JP5985708B2 (ja) 2016-09-06
TW201303573A (zh) 2013-01-16
JP2015165434A (ja) 2015-09-17

Similar Documents

Publication Publication Date Title
KR101515318B1 (ko) 멀티-코어 프로세서에서의 전력 소모 관리
US10877549B2 (en) Configuring power management functionality in a processor
US10613876B2 (en) Methods and apparatuses for controlling thread contention
US9323316B2 (en) Dynamically controlling interconnect frequency in a processor
KR101703467B1 (ko) 액티브 프로세서에 기초한 동적 전압 및 주파수 관리
US8862909B2 (en) System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US7870407B2 (en) Dynamic processor power management device and method thereof
US20090125737A1 (en) Power Management of an Electronic System
US11868192B2 (en) Systems and methods for coherent power management
US9377833B2 (en) Electronic device and power management method
WO2023081054A1 (en) Performance management during power supply voltage droop
CN117546121A (zh) 用于通过减少每周期指令数来控制多处理器核心系统中的电流供应的系统和方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee