KR101493018B1 - 실시간 전력 추정을 위한 샘플링 칩 동작 - Google Patents

실시간 전력 추정을 위한 샘플링 칩 동작 Download PDF

Info

Publication number
KR101493018B1
KR101493018B1 KR20107025182A KR20107025182A KR101493018B1 KR 101493018 B1 KR101493018 B1 KR 101493018B1 KR 20107025182 A KR20107025182 A KR 20107025182A KR 20107025182 A KR20107025182 A KR 20107025182A KR 101493018 B1 KR101493018 B1 KR 101493018B1
Authority
KR
South Korea
Prior art keywords
predetermined number
signals
power
sampling
value
Prior art date
Application number
KR20107025182A
Other languages
English (en)
Other versions
KR20110004869A (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 KR20110004869A publication Critical patent/KR20110004869A/ko
Application granted granted Critical
Publication of KR101493018B1 publication Critical patent/KR101493018B1/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
    • 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
    • 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

Abstract

실시간 전력 추정을 위한 시스템 및 방법이 개시된다. 코어는 유닛들로 분할될 수 있다. 각각의 유닛은 실제 전력 소비 특성을 얻기하기 위해 시뮬레이션된다. 전력 소비가 샘플링된다. 코어가 포아송 분포(Poisson distribution)를 가지는 고정 랜덤 프로세스에 의해 근사되는 노드 커패시턴스 스위칭 특성을 가짐을 가정하는 통계적 분석이 수행된다. 상기 통계적 분석은 샘플링 기간 동안 취할 샘플들의 수를 결정한다. 동작 주파수, 샘플링 기간, 샘플들의 수가 샘플링할 신호들의 수를 결정하는 데 사용된다. 노드 커패시턴스 스위칭 특성과의 높은 상관을 가지는 신호들(예를 들어, 클럭 분배 시스템의 최종 단의 클럭 인에이블 신호들)이 선택된다. 튜닝된 값들을 가지는 가중치들이 각각의 샘플링된 신호에 할당된다. 소정의 클럭 사이클 수 마다 샘플링이 발생한다. 반복가능한 전력 추정 값을 결정하기 위하여, 어써팅된 샘플링 신호들(asserted sampled signals)의 가중치들이 합산된다.

Description

실시간 전력 추정을 위한 샘플링 칩 동작{SAMPLING CHIP ACTIVITY FOR REAL TIME POWER ESTIMATION}
본 발명은 전자 회로에 관한 것이며, 보다 구체적으로는 반복가능한 정확한 실시간 전력 추정(repeatable real-time power estimation) 방법에 관한 것이다.
최신 집적 회로(IC)의 전력 소비는 각 세대의 반도체 칩들마다 더욱 더 큰 설계 이슈가 되어 왔다. 증가된 IC 전력 소비는 시스템 구축 비용에 직접적으로 영향을 미친다. 전력 소비가 증가됨에 따라, 과열을 제거하고 IC 고장을 방지하기 위하여 대형 팬 또는 열 싱크(heat sink)와 같은 고가의 냉각 시스템들이 더 많이 사용되어야만 한다. 그러나, 냉각 시스템은 시스템 비용을 증가시킨다. IC 전력 소모 제약은 휴대용 컴퓨터나 모바일 통신 디바이스들에서만 문제인 것이 아니라, 복수의 프로세서 코어들, 또는 코어들, 및 코어 내에 복수의 파이프라인들을 포함하는 고성능 슈퍼스칼라 마이크로프로세서에서도 문제이다.
최신 CMOS(complementary metal oxide semiconductor) 칩과 같은 IC의 전력 소비는 식 αf CV2에 비례한다. 기호 α는 스위칭 인자(switching factor), 또는 클럭 사이클 동안 노드가 충전되거나 방전될 확률이다. 기호 f는 칩의 동작 주파수(operational frequency)이다. 기호 c는 클럭 사이클 내에 충전 또는 방전될 스위칭 커패시턴스(switching capacitance) 또는 등가 커패시턴스(equivalent capacitance)이다. 기호 V는 칩의 동작 전압이다. 칩의 전력 소모를 줄이고, 트랜지스터들 내의 정전기장(electrostatic field)를 줄이기 위하여, 전원 전압(power supply voltage) V가 감소될 수 있다. 전원 전압의 저감은 트랜지스터를 통해 흐르는 전류량을 감소시키며 따라서 트랜지스터들을 통한 전파 지연(propagation delay)을 증가시키기 때문에, 전원 전압 저감에는 제한이 있다. 트랜지스터들을 보다 빨리 턴온 시키고 성능 유지를 돕기 위하여 임계 전압이 감소된다면, 트랜지스터 누설 전류가 증가한다. 트랜지스터 누설 전류의 증가는 전력 소비 및 로직 고장 (logic failure) 가능성을 모두 증가시킨다.
각 세대의 코어들에 대해, 디바이스들 및 금속 경로들의 기하학적 치수가 감소되고 있다. 슈퍼스칼라 설계는 복수의 파이프라인들, 더 큰 캐시들, 및 더 복잡한 로직을 사용하여 다이 위 집적 회로들의 밀도를 증가시킨다. 따라서, 클럭 사이클 마다 스위칭되는 노드들의 수가 현저히 증가한다. 동작 주파수 또한 각 세대 마다 증가해 왔다. 스위칭 인자 α는 칩 내의 특정 블록들 또는 유닛들에서 감소될 수 있는바, 이는 사용하지 않는 기간 동안 이 영역들을 디스에이블함으로써 이루어진다. 따라서, 각 세대의 IC 마다 동작 전압 및 스위칭 인자가 감소됨에도 불구하고, IC 전력 소비 식의 다른 항들이 증가되어 전력 소비가 전체적으로 증가된다. 이러한 전력 소비 증가에 대한 몇가지 해법은 마이크로아키텍쳐 기법 및 회로레벨 기법을 포함한다.
이러한 설계 기법들은 전력 소비를 실시간으로 추정하려한다. 예를 들어, 애플리케이션(들)을 실행하는 동안, 코어의 실시간 전력소비가 전력 관리기에 알려지고 전달된다면, 전력 관리기는 저전력 소비 기간 동안에 성능을 증가시키거나 고전력 소비 기간 동안에 전력 소비를 감소시키기 위하여, 동작 공급전압, 동작 주파수, 또는 이 두가지 모두를 변경할 수 있다.
실시간 전력 추정은 특정 클럭 사이클 동안 다이 위의 스위칭 커패시턴스를 측정하는 모니터에 의해 달성될 수 있다. 노드 커패시턴스 Cac는, 스위칭, 즉 ac, 커패시턴스와 크로스오버 전류로부터 기인하는 유효 커패시턴스로 구성된다. 주어진 파트에 대해, 동작이 온도 제한에 도달할 때 누설 전류가 고정된다. 이 누설 전류 값은 테스트 시의 측정치에 근거한 퓨즈-인 전력 오프셋(fused-in power offset)에 의해 설명될 수 있다. 온도에 의해 유발되는 누설 전류 변동을 이용하려는 시도는 하기에서 논의될 반복성(repeatability) 이유들로 인하여 권장되지 않는다. 그러므로, 칩 전력의 정확한 실시간 추정을 얻기 위해서 필요한 것은, 동작 공급 전압(디지털로 설정됨), 동작 주파수(알려져 있음), 테스트 중에 알게되는 퓨즈-인 누설 값(fused-in leakage value), 그리고 특정 클럭 사이클에서 스위칭되는 설계에서의 노드 수 측정치, 및 노드 커패시턴스 Cac이다. 마지막 항 Cac는 반도체 칩에서 측정하기에 간단한 값이 아니다.
온-칩 모니터가 스위칭 노드 커패시턴스 Cac를 측정하려 시도한다. 모니터는 하나의 코어에서, 또는 복수의 코어들을 구비한 프로세서에서 명령어 발행율(instruction issue rate)을 측정할 수 있다. 명령어 발행 큐, 재배열 버퍼(reorder buffer), 물리 레지스터 파일, 실행 유닛 등과 같은 주요 컴포넌트들의 동작 및 그것들 각각의 상호작용들이 모니터링된다면 정확도는 증가한다. 그러나, 이러한 작업을 달성하기 위하여 수백개의 신호들을 샘플링하는 것은, 추가적인 금속 경로들에 막대한 오버헤드를 야기하며, 회로가 증가되게 하고, 추가적인 전력 소비를 야기한다.
또한, 모니터 및 전력 관리기와 같은 후속적인 응답 메커니즘은 확정적(deterministic)일 필요가 있다. 즉, 모니터 및 메커니즘은 파트-투-파트, 시스템-투-시스템, 런-투-런에서 동일한 결과들 또는 주파수 변화들을 제공할 필요가 있다. 이러한 요구조건이 필요한 이유는 시스템들 중의 하나에 프로세서를 사용하는 OEM(Original Equipment Manufactureres)사들이 고객들에게 성능 보장을 제공해야 하기 때문이다. 고객들과 OEM사들은 서로 다른 시간에 서로 다른 장소에서 벤치마크 및 성능 측정을 반복할 필요가 있다. 이러한 반복이 엄격한 허용오차(tight tolerance)(즉, +/- 1.5%) 내에서 행해질 수 없다면, 모니터 및 응답 메커니즘은 턴오프될 필요가 있다. 이제 모니터 및 메커니즘은 성능 및 전력 절약 개선을 위해 유용한 작업을 수행하지 않고 다이 위의 영역을 차지한다.
온도 센서 및 전류계(ammeter)와 같은 아날로그 센서들은 정확한 전류 추정치를 제공할 수 있지만, 아날로그 센서들 모두는 환경 의존적(environment dependent)이다. 제조 공정들, 대기 온도, 전력 공급, 및 열 제거 기법의 품질 변화는 아날로그 센서들의 측정치를 변경한다.
전술한 측면에서, IC에 대한 정확한 디지털 실시간 전력 추정을 제공하는 것이 요구된다.
정확한 실시간 전력 추정 방법 및 시스템이 고려된다.
일 실시예에서, 기능 블록, 전력 모니터, 전력 관리기를 포함하는 시스템이 제공된다. 상기 전력 관리기는 전력 추정 수치(power estimate number)에 응답하여, 상기 기능 블록 내에서의 전력 소비 특성(power consumption behavior)을 반전(reverse)시키기 위해, 동작 전압 및 주파수 조정치를 상기 기능 블록에 운반한다. 상기 기능 블록은 소정 개수의 샘플링 신호들(sampled signals) 각각에 대한 로직 값을 저장하고 상기 로직 값들을 상기 전력 모니터로 운반하도록 구성된다. 상기 전력 모니터는 상기 소정 개수의 샘플링 신호들 각각에 대한 가중 값을 저장하고, 로직 하이 값의 저장된 로직 값을 가지는 샘플링 신호들만의 가중 값들을 합산하고, 그리고 상기 전력 추정 수치를 상기 전력 관리기에 운반하도록 구성되며, 여기서 상기 전력 추정 수치는 상기 가중 값들의 합으로부터 변환된 것이다.
본 발명의 또 다른 양상에서, 전력 추정 수치에 응답하여, 전력 소비 특성을 반전시키기 위하여 동작 전압 및 주파수 조정치를 운반하는 방법이 제공된다. 소정 개수의 샘플링 신호들 각각에 대한 로직 값의 저장소(storage)가 존재한다. 또한, 소정 개수의 샘플링 신호들 각각에 대한 가중 값의 저장소가 존재한다. 로직 하이 값의 저장된 로직 값을 가지는 샘플링 신호들만의 가중 값들이 누산된다. 상기 전력 추정 수치는 가중 값들의 합으로부터 변환되어 전력 관리기에 운반된다.
본 발명의 또 다른 양상에서, 기능 블록 및 전력 관리기와 통신하도록된 인터페이스를 포함하는 전력 모니터가 제공된다. 가중 테이블은 소정 개수의 샘플링 신호들 각각에 대한 가중 값을 저장한다. 가중 누산기(weight accumulator)는 로직 하이 값의 저장된 로직 값을 가지는 샘플링 신호들만의 가중 값들을 합산한다. 체인 제어기(chain control)는 전력 관리기에 전력 추정 수치를 운반하며, 여기서 상기 전력 추정 수치는 상기 가중 값들의 합으로부터 변환된 것이다.
상기 실시예들 및 다른 실시예들이 하기의 설명 및 첨부된 도면들을 참조로 이해될 것이다.
도 1은 전력 관리를 구비한 코어와 같은 IC의 일 실시예를 도시하는 개략적인 블록도이다.
도 2a는 샘플링 기간(sample interval) 동안 코어에서 실행되는 애플리케이션의 실제 전력 측정의 일 실시예를 도시하는 개략도이다.
도 2b는 샘플링 기간 동안 코어에서 실행되는 애플리케이션의 실제 전력 측정에 대한 디지털 샘플링의 일 실시예를 도시하는 개략도이다.
도 3은 신호들을 샘플링하고 이 샘플링 신호들(sampled signals)을 직렬로 출력(serially outputting)하기 위한 회로의 일 실시예를 도시하는 개략도이다.
도 4는 유닛으로부터 샘플링 신호 정보를 출력하는 타이밍도의 일 실시예를 도시하는 개략도이다.
도 5는 전력 추정 모니터 회로의 일 실시예를 도시하는 개략적인 블럭도이다.
도 6은 코어의 정확한 실시간 전력 추정 방법의 일 실시예를 도시하는 개략적인 블럭도이다.
도 7은 코어의 정확한 실시간 전력 추정을 위하여 샘플링 신호들에 할당할 가중치들을 결정하기 위한 방법의 일 실시예를 도시하는 개략적인 블럭도이다.
비록 본 명세서에 개시된 내용에 대한 다양한 수정 및 대안적인 형태가 가능하지만, 이것의 구체적인 실시예들이 도면에 예시로서 도시되었으며 본 명세서에서 상세히 설명된다. 그러나, 구체적인 실시예들에 대한 본 명세서의 기술은 본 발명을 개시된 특정 형태로 제한하려 의도된 것은 아니며, 그 반대로, 첨부의 청구항들에 의해 정의되는 것과 같은 본 발명의 범주 및 정신 내에 들어오는 모든 수정, 등가, 그리고 대안들을 포괄하도록 의도되었다.
하기에서는, 본 발명의 개괄적인 이해를 제공하기 위하여 다양한 구체적인 세부사항들이 설명된다. 그러나, 본 기술분야의 당업자라면 본 발명이 이러한 구체적인 세부사항들 없이도 실시될 수 있다는 것을 이해할 것이다. 몇몇 경우들에 있어서, 본 발명을 모호하게 하는 것을 방지하기 위하여, 잘 알려진 회로들, 구조들, 그리고 기법들은 자세히 설명되지 않았다.
도 1을 참조하면, 코어 전력 관리(100)의 일 실시예가 도시된다. 여기서, 코어(102)는 임의의 집적 회로(IC)일 수 있다. 일 실시예에서, 코어(102)는 프로세서 코어이다. 프로세서 코어는 온-다이 명령어(on-die instruction) 및 데이터 캐시를 가진다. 프로세서 코어는 하나의 파이프라인 또는 복수의 파이프라인들을 지닌 슈퍼스칼라 프로세서일 수 있다. 또 다른 실시에에서, 코어(102)는 주문형 IC(ASIC)일 수 있다. 임의의 트랜지스터 군이 코어(102)를 구현하는 데 사용될 수 있다. 트랜지스터들의 예는 금속 산화물 반도체 전계 효과 트랜지스터들(MOSFET) 및 바이폴라 접합 트랜지스터들(BJT)을 포함한다.
기능 블록(110)은 로직 기능, 데이터 저장 또는 다른 기능들을 수행하도록 된 트랜지스터들을 포함할 수 있다. 전력 관리 목적으로, 기능 블록(110)은 유닛 132a-132d들로 분할될 수 있다. 본 명세서에서 사용된 것과 같이, 뒤에 문자가 붙은 도면부호들로 참조된 소자들은 집합적으로 그 도면부호로만으로 참조될 수 있다. 예를 들어, 유닛들(132a-132d)는 집합적으로 유닛들(132)로 참조될 수 있다. 일 실시예에서, 유닛들(132)은 재배열 버퍼, 메모리 관리 유닛, 실행 유닛, 또는 프로세서의 다른 유닛과 같은 기능 컴포넌트들(functional components)에 대응하지 않을 수 있다. 오히려, 유닛들(132)은 전력 관리를 위하여, 샘플링될 필요가 있는 신호들의 타입들에 근거하여 선택될 수 있다. 예를 들어, 로컬 클럭 분배 블록들로 라우팅된 클럭 인에이블 신호들이 샘플링되도록 선택된 신호들일 수 있다.
특정 클럭 사이클 동안 어떤 신호들을 샘플링할지에 대한 선택은, 이 선택이 스위칭 노드 커패시턴스 Cac의 양에 얼마나 잘 상관(correlation)되는지에 대응한다. 샘플링 신호에 대한 추가적인 설명은 차후에 제공된다. 선택된 클럭 인에이블 신호들은 플로어플랜(floorplan) 내의 기능 블럭들과 중복(overlap)될 수 있다. 따라서, 예를 들어, 유닛 132a와 132b를 나누는 분할은, 플로어플랜 내에서의 분할에 대응하지 않을 수 있다. 유닛들(132)은 전력을 소비하는 유닛들이며, 이 전력은 실시간으로 측정될 것이다.
일 실시예에서, 전력 모니터(130)는 유닛들(132)로부터, 모든 소정 샘플링 신호들의 로직 값들과 같은 데이터를 수집하는 데 사용될 수 있다. 데이터를 수집한 후, 전력 모니터(130)가 전력 소비 추정치를 계산할 수 있다. 일 모니터 제어기(132)가 개개의 유닛(132)에 대응한다. 대안적인 실시예들에서, 모니터 제어기(132)는 두개 이상의 유닛들(112)에 대한 데이터를 수집할 수 있으며, 그 유닛들(112)에 대해 전체 전력 추정치를 계산할 수 있다. 또 다른 실시에에서, 일 모니터 제어기(132)(즉, 제어(132a))는, 하나 이상의 모니터 제어기들(132)(즉, 제어기들(132b-132d))로부터 데이터를 수집하기 위하여, 하나 이상의 다른 모니터 제어기들(132)(즉, 제어들(132b-132d))과의 신호 인터페이스를 가질 수 있다. 그후 하나 이상의 모니터 제어기들(132)에 대한 전력 추정치가 계산될 수 있다.
신호 샘플(120) 및 데이터출력(122)은 전력 관리 목적으로 사용되는 제어 신호 및 데이터 신호이다. 전력 모니터(110)와 기능 블록(130) 사이의 인터페이스 신호들은 임의의 필요한 수의 신호들 및 통신 프로토콜들을 포함할 수 있다. 일 실시예에서, 제어 신호 샘플(120)은 매 100 클럭 사이클들과 같은 선택된 반복 기간 동안에만 단일 클럭 사이클에 어써팅 될 수 있다. 일 실시예에서, 제어 신호 샘플(120)이 어써팅 된 후 소정 개수의 클럭 사이클들에서, 데이터 신호 데이터출력(122)이 각각의 클럭 사이클마다 서로 다른 샘플링 신호들에 대한 로직 값을 제공하기 시작한다. 즉, 데이터 신호 데이터출력(122)은 특정 사이클에서 샘플링 신호들의 로직 값들을 포함하는 값들의 체인을 스캔 아웃(scan out)하는데 사용된다. 또한, 다른 실시예들에서, 각각의 모니터 제어기(132)와 유닛(112) 쌍 사이에 신호들의 단일 쌍이 존재하지 않을 수 있다. 대안적인 실시예에서, 모니터 제어기(132)가 유닛(112)을 폴링하고 유닛(112)이 그것이 출력 데이터를 운반할 준비가 되었음을 모니터 제어기(132)에 애크신호하게 하기 위하여 추가적인 신호들이 포함될 수 있다.
일단 전력 모니터(130)가 기능 블록(110)으로부터 수신한 데이터로부터 정확한 실시간 전력 추정값을 계산하면, 전력 모니터(130)는 현재 실행중인 애플리케이션(들)의 전력 프로파일을 결정한다. 이러한 결정은 전력 관리기(140)로 운반된다. 이제 전력 관리기(140)는 애플리케이션이 임계 제한(threshold limit)을 초과하면(임계 제한 미만이면) 전력을 감소(또는 증가) 시킬 수 있다.
고전력 애플리케이션 또는 바이러스가 코어(102)에서 실행되면, 전력 관리기(140)는 동작 전압, 동작 주파수, 또는 이 둘 모두를 조정하도록된 회로를 포함한다. Cac에 대해 설정된 제한값 보다 큰 평균 전력을 가진 애플리케이션들에 대해서는, 동작 주파수가 감소될 필요가 있다. 그러나, Cac에 대해 더 낮은 제한 값을 설정하는 것은, 어떤 애플리케이션도 Cac 제한값보다 더 스위칭하지 않을것임을 보장하므로, 부분이 더 높은 주파수에서 비닝(binning)될 수 있게 해준다.
앞에서 언급한 바와 같이, 코어 스위칭 전력을 추정하는 한가지 방법은 명령어 발행율을 측정하는 것이다. 안타깝게도, 많은 특수화된 오퍼레이션들을 가지는 코어의 몇가지 실시예들에서, 데이터 폭, 성능 향상 회로(performance enhancing circuitry), 캐시 동작 불확실성(cache behavior uncertainties), 많은 브랜치 예측 기법들 중 하나 등의 이유로, 클럭 사이클 내에서 스위칭하는 노드 커패시턴스 Cac를 추정하는 간단한 방법들은 존재하지 않을 가능성이 크다. 몇개의 비상관 신호들(uncorrelated signals)로부터 Cac를 정확하게 추정하기 위하여, 적절한 전력 모델이 설계될 때까지 그 신호들이 알려져 있지 않으며 신호 전력 상관 체크를 위해 광범위한 애플리케이션들의 세트가 상기 전력 모델을 통과해야 한다. 그때까지, 필요한 장소들에 필요한 신호 샘플링 회로를 추가하려 하는 것에 의해 설계를 수정하는 것은 너무 늦다.
한편, 설계상의 전력 추정에 현저한 영향을 미치는 광범위한 신호들의 세트를 샘플링하는 것이 가능하다. 이러한 기법에서는 많은 신호들이 서로 상관될 가능성이 크고, 몇몇 신호들은 단지 전력에 적은 영향을 미칠 것이므로, 신호들을 오버샘플링 할 수 있다. 그러나, 효율적인 구현으로 어느 정도의 오버샘플링에 대한 설계 비용이 작다면, 이 기법을 사용하여 정확한 Cac 모니터링에 대한 신뢰가 현저히 증가될 것이다.
앞에서 언급한 바와 같이, Cac에 적지 않은 영향(non-trivial impact)을 미치는 설계상의 수백개의 신호들을 샘플링하는 것은, 배선 및 회로의 오버헤드(overhead) 측면에서 현저한 설계 비용을 야기할 것이며, 만약 전체 동작 주파수에서 모니터링이 이루어진다면 전력 소모 또한 야기할 것이다. 그러나, 전력 추정이 되게하는 Cac 추정이, 단지 열 시간 프레임(thermal time frame)(수 밀리세컨드 범위 내에 있음) 내에서 응답하는 것을 필요로한다는 사실을 이용하는 것이 가능하다. 이 시간 프레임은 추정이 수백 사이클들을 사용하여 이 수백 사이클들에 걸친 평균 Cac를 결정하게 해준다. 사실, 추정 및 후속적인 응답이 너무 빨리 발생하고, 애플리케이션의 높은 활동(high activity)의 짧은 주기에 응답했다면, 상기 응답은 코어를 스로틀링할 수 있다. 그후, 성능은 불필요하게 감소될 수 있다. 추정은 후속적인 응답 및 가능한 스로틀링이 기반을 둔 더 긴 시간 기간에 걸쳐 애플리케이션의 평균 전력을 모니터링할 것을 필요로 한다. 그러나, 샘플링 기간이 수백 사이클로 확장된다면, 애플리케이션이 전혀 관련없는 코드 섹션으로 이동할 확률이 상당하기 때문에, 샘플들의 시그마(sigma) 또는 표준 편차(standard deviation)가 현저하게 증가할 것이다. 전력 모델 데이터에 근거하여, 특정 범위내에서 샘플들에 대한 양호한 활동 상관이 찾아질 수 있다. 예를 들어, 일 실시예에서, 일반적인 애플리케이션에서의 샘플들에 대한 양호한 활동 상관은 시그마가 작은 50K 클럭 사이클 도메인 내에 있을 것이다.
몇 백개의 알려진 신호들이 먼저 샘플되는 것으로 선택된다면, 신호 값들이 직렬 방식(serial fashion)으로 스캔되고, 활동이 관련된 신호들(activity related signals)의 단일 샘플을 얻기 위해 몇백 클럭 사이클들이 필요하다. 표준 통계적 분석으로부터, 샘플들의 평균 및 시그마가 실제 신호 집단(actual population of signals)의 시그마 및 평균과 밀접한 상관(close correlation)을 가진다는 신뢰도가 도달(즉, 99%의 신뢰도)되기 전에는, 이 수백개의 신호들에 대해 몇개의 샘플들이 요구된다.
애플리케이션의 스위칭 동작은 포아송 분포(Poisson distrubution)를 사용하는 고정 랜덤 프로세스에 의해 근사될 수 있는 것으로 가정된다. 또한, 중심 극한 정리(central limit theorem)는 큰 데이터 집단이 정규 분포를 사용하여 정확하게 근사될 수 있다는 것을 보여준다. 이러한 통계 기법은 작은 샘플 집단으로부터 여론 조사를 실시하는 것이나 통계 센서스 수치(statistical census number) 등을 생성하는데 사용되는 기법과 유사하다. 더 넓은 집단의 특성들은 충분한 수의 랜덤 샘플들을 취함으로써 재구성된다. 결정될 필요가 있는 두개의 파라미터들은 필요한 샘플들의 수와 어떤 신호들을 샘플링할 것인가이다.
필요한 샘플들의 수에 대해서는, 일 실시예에서, 애플리케이션의 실제 전력 소비 및 샘플링으로부터 추정된 전력 소비 모두의 통계적 분석 및 측정을 사용하여 스프레드 시트가 생성될 수 잇다.
도 2A는 샘플링 기간 동안 코어에서 실행되는 애플리케이션의 실제 전력 측정(200)의 일 실시예를 도시한다. 대안적인 실시예에서, 이러한 전력 측정은 유닛, 기능 컴포넌트 등과 같은 코어의 한 부분에서 수행될 수 있다. 일 실시예에서, 이러한 측정은 코어의 프리-실리콘(pre-silicon) 모델 상에서 실행되는 전력 모델에 의해 수행될 수 있다. 코어의 기능적 고장에 의해, 또는 코어에서 Zuraski와 같은 고-전력 바이러스(high power virus)가 실행되는 것에 의해 피크 전력(210)이 정의될 수 있다. 샘플링 기간 동안 소비된 전력이 실제 전력 파형(220)으로 도시된다. 일 실시예에서, 샘플링 기간은 수십 마이크로세컨드 범위 내에 있다.
최신 프로세서들에서, 열 설계 전력(TDP; thermal design power)이 고-전력 바이러스 Zuraski의 경감된 형태(de-rated form)로 설정될 수 있다. 이러한 경감된(de-rated), 또는 파생된(derived) TDP 코드 및 이에 대응하는 전력 소모는 비닝 목적(binning purposes)을 위해 코어의 동작 전압 및 주파수를 설정하는 데 사용된다. 그러나, 최신 프로세서의 대부분의 수명기간 동안, 실행되는 애플리케이션들이 이러한 TDP값의 60% 내지 80% 이상을 소비하지 않는다. 정확한 실시간 Cac 추정 및 그 후의 전력 추정을 통해, 실행되는 애플리케이션과 TDP 사이의 20% 내지 40%의 갭을 활용하는 것이 가능하다. 이는 상기 갭을 TDP 감소(TDP reduction)(새로운 TDP는 애플리케이션 전력임) 또는 주파수 증가로 바꿈으로써 달성되며, 상기 TDP는 전의 TDP와 동일하지만, 통상적인 애플리케이션들에 의해 소비된다. 바이러스가 Cac 추정 후 전력 관리기에 의한 후속적 응답에 의해 스로틀될 것이므로, 상기 TDP는 바이러스에의해 소비되지 않을 것이다.
도 2b는 샘플링 기간 동안 코어에서 실행되는 애플리케이션의 실제 전력 측정의 디지털 샘플링(230)의 일 실시예를 도시한다. 각각의 간헐 사이클들(intermittent cycles)(250) 동안 샘플링 데이터포인트(Sampled Datapoint)(240)가 취해진다. 도시된 실시예에서, 샘플링 데이터포인트(240a)에서 시작하여 샘플링 데이터포인트(240n)으로 끝나는 샘플링 기간 동안 전체 N개의 샘플들이 취해진다. 전력 추정 값의 샘플링 사이의 간헐 사이클 수의 결정은 샘플링 데이터 포인트 수인 N 값의 결정에 의존하고, 간혈 사이클들의 수는 요구되는 정확도 및 신뢰성에 의존한다.
상술한 바와 같이, 도 2a-2b에 도시된 것과 같은 애플리케이션의 실제 전력 소비 및 샘플링으로부터 추정된 전력 소비 모두에 대한 통계적 분석 및 측정을 사용하여, 스프레드 시트 또는 룩업 테이블이 생성될 수 있다. 그후, 신뢰성 및 에러율(error rate)이 선택되어야 한다.
예를 들어, 제1 예에서, 설계 목표는 전체 코어에 대해 도 2b에 도시된 것과 같은 샘플의 평균이, 도 2a에 도시된 것과 같은 실제 애플리케이션 평균의 시그마, 또는 표준 편차의 12% 내에 있다는 것에 대한 95%의 신뢰도를 요구할 수 있다. 항 0.12*시그마는 통계적 샘플링으로 인한 에러이다. 룩업테이블 또는 스프레드시트를 사용하여, 이러한 설계 요구조건을 달성하기 위해, 예를 들어, 적어도 500개의 샘플들이 필요하다는 것이 결정될 수 있다. 전력 추정에 이르게 하는 Cac 추정이 단지 수 밀리세컨드 범위 내에 있는 열 시간 프레임 내에서 응답하는 것을 필요로 한다는 것을 상기하도록 한다. 이러한 시간 프레임은 상기 추정이 평균 Cac를 결정하기 위한 수백만개의 사이클들을 사용할 수 있게 해준다. 샘플링 기간은 25㎲일 수 있다. 일 실시예에서, 동작 주파수는 3GHz일 수 있다. 이 예에서, 샘플들 사이의 간헐 클럭 사이클들의 수는 (3Ghz)*(25㎲)/500 = 150 클럭 사이클일 것이다. 일 실시예에서, 샘플링 신호들의 값들은 직렬 방식(serial manner)으로 스캔될 수 있다. 따라서, 150개의 신호들이 단일 클럭 사이클에서 샘플링될 수 있으며 다음 샘플링이 수행되기 전에 직렬로(serially) 스캔될 수 있다.
이 예에서, 절대적인 최악의 경우의 추정 시나리오(absolute worst case estimation scenario)는 +/-2 시그마의 클립된 정규 분포를 포함할 것이며, 여기서 일 시그마는 범위의 25%이다. 따라서, 최악의 경우 에러는 0.12*0.25 = 3%이다. 보다 일반적인 최대 시그마 값은 약 10%이다. 12% 시그마의 에러 항으로, 통계적 샘플링으로 인한 에러가 0.12*0.1 = 1.2%라는 95%의 신뢰도를 갖는 것이 가능하다.
제2 예에서, 설계 목표는 전체 코어에 대해 도 2b에 도시된 것과 같은 샘플의 평균이 도 2a에 도시된 것과 같은 실제 애플리케이션 평균의 시그마, 또는 표준 편차의 10% 내에 있다는 것에 대한 99%의 신뢰도를 요구할 수 있다. 항 0.10*시그마는 통계적 샘플링으로 인한 에러이다. 룩업테이블 또는 스프레드시트를 사용하여, 이러한 설계 요구조건을 달성하기 위해, 예를 들어, 적어도 650개의 샘플들이 필요하다는 것이 결정될 수 있다. 또한, 일 실시예에서, 코어는 10개의 유닛들로 나누어질 수 있으며, 여기서 각각의 유닛은 동일한 수의 신호들을 샘플링한다. 이러한 분할의 이유는 하기에서 간략하게 보여질 바와 같이 정확도를 증가시키기 위해서이다. 각각의 유닛에 대해, 단지 90%의 신뢰도가 요구된다. 0.91/10이 0.9895 이므로, 신뢰도의 합계는 99%의 전체 신뢰도를 산출해낸다. 다시 룩업테이블 또는 스프레드 시트를 사용하여, 650개의 샘플들 및 90%의 신뢰도에 대해, 시그마로부터의 편차가 더 이상 10%는 아니지만 6.5%로 감소된다는 것이 결정될 수 있다. 개별 유닛에 대해, 정확도가 증가되면서 신뢰도 레벨은 감소되었지만, 코어에 대한 전체 신뢰도 레벨은 99%에서 불변인채로 유지되고 이제 그 정확도가 10%에서 6.5%로 향상되었다.
이 두번째 예가 25㎲의 제1 예에 대해 상기와 동일한 샘플링 기간을 가지고, 동작 주파수가 3Ghz에서 동일하다면, 샘플들 사이의 간헐 클럭 사이클들의 수는 (3GHz)*(25㎲)/650 = 115 클럭 사이클이다. 일 실시예에서, 제1 예에서와 같이, 샘플링 신호들의 값들은 직렬 방식으로 스캔될 수 있다. 따라서, 150개의 신호들이 단일 클럭 사이클에서 샘플링될 수 있으며, 다음 샘플링이 수행되기 전에 직렬로 스캔될 수 있다.
도 3을 참조하면, 신호들을 샘플링하고 샘플링 신호들(sampled signal)의 값들을 직렬로 출력하기 위한 회로(300)의 일 실시예가 도시된다. 일 실시예에서, 클럭 사이클 내에서 샘플링할 것으로 선택된 신호들을 캡쳐(capture)하기 위하여, 샘플링될 신호들에 대해서만 D 플립-플롭 회로들(320) 및 멀티플렉서들(310)이 도시된 것과 같이 놓일 수 있다. 이 추가된 회로는 정확한 실시간 Cac 추정을 위한 샘플링 데이터를 얻기 위하여 낮은 오버헤드를 제공한다. 선택 라인(샘플(120))이 로직 하이 값으로 어써팅되면, 멀티플렉서(310)에 의해 신호(350)이 선택되어 D 플립-플롭(320)에 의해 저장된다.
신호 샘플(120)은 도 1의 모니터 제어기(132)와 같은 제어 블록으로부터 수신될 수 있다. 일 실시예에서, 코어의 유닛에서 샘플링할 신호들의 수는 100일 수 있다. 대안적인 실시예들에서, 샘플링할 신호들의 개수는 특정 코어 설계를 위해 정확한 전력 추정을 제공하는 임의의 수일 수 있다. 샘플(120)은 매 100 사이클 마다 클럭 사이클에 대해 어써팅될 수 있으며, 이는 샘플링 신호들의 캡쳐된 값들이 샘플들 사이에 직렬로 출력될 수 있게 해준다.
D-플립플롭(320)으로 라우팅되는 클럭 신호(Clk(330))는 언게이티드 클럭 신호(ungated clock signal)일 수 있다. 신호 샘플(120)이 로직 로우 값으로 디어써팅될 때, 멀티플렉서들(310)은 전의 D 플립-플롭(320)의 출력 값을 운반한다. 이러한 식으로, 100개의 샘플링 신호들(신호(350))의 샘플링 클럭 사이클(sampled clock cycle) 동안의 값들이 직렬 방식(serial manner)으로 출력된다. 모니터 제어(132)로의 라우팅 거리에 따라, 인버터 버퍼들이 D 플립-플롭(320a) 다음에 배치될 수 있다.
일 실시예에서, 샘플링되도록 선택된 신호가 클럭 게이터 인에이블 신호들일 수 있다. 게이터 회로는 클럭 신호를 생성하는 클럭 분배 시스템(clock distribution system)의 최종 단(last stage)일 수 있다. 일반적으로, 게이터 회로들은 최신 프로세서 플로어플랜의 로컬 블럭들 내에 있으며, 로컬 설계자는 블럭 내에서 특정 클럭 부하(clock load)를 구동(drive)할 게이터 회로를 클럭 라이브러리로부터 선택한다.
도 3의 게이터 회로(340)는 인에이블 신호(클럭 인에이블(362)), 및 클럭 분배 시스템 내의 전 단(previous stage)으로부터 공통 클럭(360)을 수신한다. 도시된 실시예에서, 클럭 인에이블(362)은 샘플링될 신호이며, 멀티플렉서들(310)로의 입력이다. 게이트 회로(340)는 다른 종류의 신호들 중에서도 입력 및 출력 신호들을 스캔하도록 연결될 수 있다.
위에서 논의된 바와같이 통계적 분석을 고려하면, 통계적 샘플링으로인한 Cac 추정 에러는 작을 것이다. 그러나, 노드 스위칭 커패시턴스 Cac에 대한 샘플링 신호 특성의 부정확한 상관으로 인하여 에러들이 존재할 것이다. 클럭 게이터 인에이블 신호들(Clk 인에이블(362))은, 로컬 설계자들에 의해 상대적으로 쉽게 배치된다. 또한, 이 신호들은 다운스트림 회로가 활성인지 비활성인지 여부 및, 이에 따라 다운스트림 노드 커패시턴스들이 스위치될지 여부를 직접 결정한다.
샘플링되는 특정 Clk 인에이블(362)에 대해, 로직 하이 값에 대응하는 저장 값은 적어도 최소 커패시턴스가 스위칭되고 있다는 것을 의미한다. 추가량의 커패시턴스가 조건적으로 스위칭되며, 이는 클럭 게이터 인에이블(Clk 인에이블(362))의 다운스트림인 구성들 및 다른 신호들에 의해 결정된다. Cac가 다양한 방식으로 어떻게 변하는지를 결정하는 게이터 클럭 인에이블 신호들의 다운스트림 신호들의 몇가지 예는, 로드-스토어 큐 내의 유효 비트(예를 들어, 오퍼랜드 비트 폭, 및 캐시 히트 또는 미스)와 같은 유효 비트들이다. 도 3에 도시되지는 않았지만, 대안적인 실시예에서, 이러한 신호들 일부 및 다른 신호들이 클럭 게이터 인에이블 신호와 논리적으로 결합되어, 샘플링되고 멀티플렉서들(310)에 입력될 새로운 신호를 생성할 수 있다. 이 새로운 신호는 스위칭된 최소 커패시턴스에 더해질 증분 커패시턴스를 결정할 수 있다.
또한, 클럭 게이터 인에이블들 이외에, 신호들의 어써션이 스위칭 커패시턴스의 양을 표시해주는 신호들이 존재한다. 몇가지 예는 버스 드라이버 인에이블들, 내용-주소화 메모리(CAM: content-addressable memory) 내의 미스매치들, 및 CAM 워드-라인(WL) 드라이버들이다. 천이 검출기(transition detector)가 이 신호들에 대한 추가적인 스위칭된 커패시턴스를 결정하는 데 필요할 수 있다.
도 4는 도 3의 회로(300)의 신호들(클럭(330), 샘플(120), 및 데이터출력(122))에 대한 타이밍도(400)의 일 실시예를 도시한다. 클럭(330)은 언게이티드 클럭 신호이다. 샘플(120)이 어써팅될 때, 샘플링 신호들(신호(350))이 D 플립-플롭(330) 내에 저장된다. 샘플(120)이 디어써팅될 때, 샘플링 신호(신호들(350))은 라인 데이터출력(122) 상에서 체인으로 직렬로 출력된다.
일단 신호들의 샘플링이 정확하게 이루어지면, 이 정보는 가중 평균 합(weighted average sum)을 사용하여 Cac 추정치로 변환될 수 있다. 도 5를 참조하면, 가중 평균 합을 결정하는 회로(500)의 일 실시예가 도시된다. 이 회로는 모니터 제어기(132) 내에 존재할 수 있다. 체인 제어기(502)가 샘플(120)을 기능 블럭(110) 내의 유닛으로 운반할 수 있다. 또한 체인 제어기(502)는 데이터출력(122)을 수신할 수 있다. 샘플(120)이 데이터를 샘플링하기 위해 어써팅되고 디어써팅된 후, 체인 제어기(502)는 직렬 체인(serial chain) 내에서 어떤 신호, 또는 비트 포지션이 현재 그 자신의 값을 수신되게 하고 있는지를 추적(track)할 수 있다. 일 실시예에서, 샘플링 신호들을 구분하기 위해 카운터가 사용될 수 있다. 그러한 카운터의 출력은 가중 테이블(504)을 인덱싱하는 데 사용될 수 있다. 체인 제어기(502)에 의해 운반된 값은 가중 테이블(504) 내의 엔트리 비트 포지션들(506)과 비교될 수 있다. 엔트리가 인덱스에 히트 또는 매치되면, 가중치들(508)에서 그것의 대응하는 가중치가 가중 누산기(weight accumulator)(510)로 운반된다. 여기서, 수신된 가중치가 이전에 수신된 가중치들과 합산된다.
예를 들어, 100개의 신호들이 샘플링될 것으로 선택될수 있다. 새로운 샘플링 주기가 시작되고, 라인 데이터출력(122)상에서 수신된 현재 값은 이 새로운 샘플링 주기의 37번째 수신된 값이다. 이 37번째 샘플링된 값이 로직 로우 값을 가진다면, 38번째 샘플링 값(sample value)이 도착할때 까지 더 이상의 작업이 수행될 필요가 없다. 37번째 샘플링 값이 로직 하이 값을 가진다면, 값(37)은 가중 테이블(504)을 인덱싱하는 데 사용된다. 37번째 샘플링 신호에 대한 대응하는 가중치가 가중 누산기(510)로 운반된다. 이 대응 가중치는 로직 하이 값을 가지는 36개의 전에 수신된 값들의 축적된 가중치들과 합산된다. 가중치 값들을 선택하기 위해 사용되는 기법이 하기에서 간략하게 설명된다.
도 6은 코어의 정확한 실시간 전력 추정을 위한 방법(600)의 일 실시예를 도시한다. 대안적인 실시예들을 유도해내기 위해 방법(600)은 수정될 수 있다. 또한, 이 실시예의 단계들은 순서대로 도시된다. 그러나, 몇몇 단계들은 도시된 것과 다른 순서로 행해질 수 있으며, 몇몇 단계들은 동시에 수행될 수 있고, 그리고 몇몇 단계들은 다른 실시에에서는 생략될 수 있다. 도시된 실시예에서, 반도체 칩이 플로어플랜(floorplan)되며, 블럭(602)의 플로어플랜에 따라 개별 블록들 및 셀들이 배치된다. 코어는 전체 칩이거나 칩의 일부분일 수 있다. 앞에서 언급한 바와 같이, 코어는 임의의 IC일 수 있다. 일 실시예에서, 코어는 프로세서 코어일 수 있다. 또 다른 실시예에서, 코어는 ASIC 또는 다른 반도체칩일 수 있다.
코어는 블록(604)에서 샘플링 목적으로 유닛들로 분할될 수 있다. 각각의 유닛은 소정의 샘플링 신호들의 값들의 직렬 체인을 제공할 수 있다. 블럭(606)에서, 샘플링 기간들 동안 다이에서의 전력 소모를 특성화하기 위해 코어에서 광범위한 애플리케이션들의 세트에 대해 전력 모델이 실행된다. 블록(608)에서, 샘플링 기간 내에 수행될 샘플들의 수가 포아송 분포 등을 사용하는 통계적 분석으로부터 유도되었으며 애플리케이션들을 실행하는 동안에 코어의 노드 커패시턴스 스위칭 특성(node capacitance switching behavior)을 특징짓는(characterize) 룩-업 테이블로부터 결정될 수 있다. 그후, 동작 주파수, 샘플링 기간, 및 선택될 샘플들의 정해진 개수로부터 샘플링할 신호들의 수가 결정될 수 있다.
블록(610)에서, 가중 값이 각각의 샘플링 신호에 대해 할당된다. 이 프로세스에 대한 보다 자세한 설명은 하기에서 주어진다. 어써팅된 샘플링 신호들의 가중치의 합이 특정 클럭 사이클 내에서 코어의 정확한 실시간 전력 추정을 결정하는데 사용된다. 이 합은 특정 클럭 사이클에서 노드 스위칭 커패시턴스 Cac의 추정치이며, 룩업 테이블을 인덱싱함으로써 전력 수(power number)로 변환될 수 있다. 이 룩업 테이블은 전력 모델이 코어 상에서 실행되었을 때 특성화 프로세스(characterization process)에 의해 생성될수 있다.
블록(612)에서, 샘플링 신호들의 가중치의 합으로부터 생성된 실시간 전력 추정치가 소정 애플리케이션 묶음(predetermined application suite) 내의 각각의 애플리케이션들에 대해 전력 모델로부터 생성된 전력 추정치와 비교된다. 이 두 값들 사이의 차가 소정의 최소 정확도(조건 블록(614)) 이하이면, 전력 추정 회로의 설계가 완료되고, 블록(616)에서 코어 내의 모니터 제어를 사용하여 칩을 테이프아웃(tape-out)할 수 있다. 최소 정확도가 충족되지 않으면(조건 블록(614)), 제어 흐름은 블록(608)로 되돌아간다. 새로운 수의 샘플들 및 새로운 수의 샘플링할 신호들이 선택된다.
도 7은 코어의 정확한 실시간 전력 추정을 위한 샘플링 신호들에 할당하기 위한 가중치를 결정하는 방법(700)을 도시한다. 방법(700)은 대안적인 실시예들을 유도하기 위해 당업자에 의해 수정될 수 있다. 또한, 이 실시예의 단계들은 순서대로 도시되었다. 그러나, 몇몇 단계들은 도시된 것과 다른 순서로 실행될 수 있으며, 몇몇 단계들은 동시에 행해질 수 있고, 몇몇 단계들은 다른 단계들과 결합될 수 있으며, 그리고 몇몇 단계들은 또 다른 실시예에서는 생략될 수 있다. 도시된 실시예에서, 블록(702) 내의 샘플링 기간들 동안 다이에 대한 전력 소비를 특성화하기 위해 광범위한 애플리케이션들의 세트에 대해 코어 상에서 전력 모델이 실행된다.
블록(704)에서, 각각의 샘플링 신호에 대해 동일한 초기 가중치가 할당된다. 이 초기 값을 결정하기 위하여, 코어에서 특정 애플리케이션이 실행되고, 클럭 사이클 내의 어써팅된 샘플링 신호들의 합이 기록된다. 샘플링 기간 내에 각각의 샘플링된 클럭 사이클에 대해 어써팅된 샘플링 신호들의 수가 기록된다. 샘플링 기간 내에 수백개의 샘플링 클럭 사이클들이 있을 수 있다. 블록(702)에서 전력 모델의 실행으로부터 발견되는 이 샘플링 기간에 대한 실제 전력 추정치는 실제 Cac 값을 결정하는 데 사용된다. 이 실제 Cac는 샘플링 기간에 걸쳐 어써팅된 샘플링 신호들의 전체 합으로 나누어진다. 이 유도된 값은 각각의 샘플링 신호에 할당된 동일한 초기 가중치 값이다.
위의 단계들은 블록(706)에서 애플리케이션 묶음의 각각의 애플리케이션에 대해 수행될 수 있다. 각각의 애플리케이션은 샘플링 신호들에 대해 그 고유의 유도된 초기 동일 가중치를 가질 것이다. 블록(708)에서, 이 값들 전체의 평균은 샘플신호들에 대해 사용된 초기 동일 가중 값(initial equal weight value)이다.
각각의 애플리케이션에 대해, 초기 가중치들로부터 계산된 Cac는 에러 항을 가질 것이다. 블록(710)에서 모든 애플리케이션들에 대해 전체 에러가 계산된다. 일 실시예에서, 이 전체 에러는 각각의 애플리케이션에 대한 에러들의 합이다. 대안적인 실시예에서, 이 전체 에러는 각각의 에플리케이션들에 대한 에러들 제곱(square)의 합이다. 대안적인 실시예들에서, 전체에러를 계산하기 위해 다른 식이 사용될 수 있다.
블록(712)에서, 특정 샘플링 신호에 대해, 그것의 대응하는 초기 동일 가중값이 전체 에러를 감소시키는 방향으로 증가되거나 감소될 수 있다. 만약 전체 에러가 감소되는 것이 중단되지 않았다면, 제어 흐름은 블록(712)로 되돌아간다. 만약 전체 에러가 감소되는 것이 중단된다면(조건 블록(714)), 블록(716)에서, 그 특정 샘플링 신호에 대한 현재 가중 값이 저장된다. 이 값은 가중 테이블(504)와 같은 테이블에 저장될 수 있다.
가능한 값 변화(조건 블록(718))에 대해 모든 샘플링 신호들이 조사되지 않았다면, 제어 흐름은 블록(712)로 되돌아간다. 모든 샘플링 신호들이 조사되었다면(조건 블록(718)), 블록(720)에서 가중 값들을 저장하는 하나 이상의 테이블들이 최종 가중 값들을 가진다.
위의 실시예들은 상당히 자세히 묘사되었지만, 위의 개시가 완전히 이해된다면 다양한 변형 및 수정이 당업자에게 자명할 것이다. 다음의 청구항들은 모든 그러한 변형 및 수정을 포괄하도록 해석되는 것으로 의도된 것이다.
본 발명은 일반적으로 전자 회로들에 적용가능하다.

Claims (20)

  1. 소정 수(predetermined number)의 샘플링 신호들(sampled signals) 각각에 대응하는 데이터를 운반하도록 된 기능 블록(functional block) - 상기 소정수의 샘플링 신호들은 하나 이상의 클록 게이터 인에이블 신호로 구성된다 - 과;
    상기 소정수의 샘플링 신호들 각각에 대한 소정의 가중값을 저장하도록 된 가중 테이블과;
    상기 데이터를 수신하여 상기 소정 수의 샘플링 신호들 각각에 대한 상기 가중 테이블로부터 대응하는 가중값(weight value)을 액세스하고, 대응하는 로직 하이 값(logic high value)을 가지는 상기 샘플링 신호들의 가중값들을 합산하고; 그리고 상기 합산에 근거하여 전력 추정 수치(power estimate number)를 결정하도록 된 전력 모니터(130)와; 그리고
    상기 전력 추정 수치에 응답하여, 상기 기능 블록 내에서의 전력 소비 특성(power consumption behavior)을 변경하기 위하여 상기 기능 블록으로 전압 및 주파수 조정치들(voltage and frequency adjustments)를 운반하도록 된 전력 관리기(power manager)를 포함하여 구성되고,
    상기 기능 블록은 하나 이상의 유닛들을 포함하며, 동일한 소정 수의 샘플들 및 동일한 소정 수의 샘플링 신호들에 대해, 상기 하나 이상의 유닛들 각각은 상기 기능 블록보다 낮은 신뢰 레벨(confidence level) 및 높은 정확도를 가지는 것을 특징으로 하는 시스템.
  2. 제1 항에 있어서,
    상기 전력 추정 수치는 환경 변화(environment variations)에 독립적인 반복가능한 값(repeatable value)인 것을 특징으로 하는 시스템.
  3. 제2 항에 있어서,
    상기 가중값들은 상기 기능 블록이 포아송 분포(Poisson distribution)를 가지는 고정 랜덤 프로세스에 의해 근사되는 노드 커패시턴스 스위칭 특성을 가지는 것으로 가정하는 통계적 분석을 이용하여 결정되는 것을 특징으로 하는 시스템.
  4. 제2 항에 있어서,
    상기 가중값들의 저장은 소정 수의 클럭 사이클들 마다 한번씩 발생하는 것을 특징으로 하는 시스템.
  5. 제3 항에 있어서,
    샘플링 기간(sample interval) 내에서의 소정 수의 샘플들은 상기 통계적 분석으로부터 결정되는 것을 특징으로 하는 시스템.
  6. 제5 항에 있어서,
    상기 소정 수의 샘플링 신호들은, 동작 주파수, 상기 샘플링 기간, 그리고 상기 소정 수의 샘플들로부터 결정되는 것을 특징으로 하는 시스템.
  7. 삭제
  8. 제1 항에 있어서,
    상기 가중 테이블 내의 상기 소정 수의 가중값들은 상기 신호들을 샘플링하기 전에 결정되는 것을 특징으로 하는 시스템.
  9. 제8 항에 있어서,
    상기 가중값들은 상기 기능 블록이 고정 랜덤 프로세스에 의해 근사되는 노드 커패시턴스 스위칭 특성을 가지는 것으로 가정하는 통계적 분석을 이용하여 결정되는 것을 특징으로 하는 시스템.
  10. 기능 블록으로부터 소정 수(predetermined number)의 샘플링 신호들(sampled signals) 각각에 대응하는 데이터를 운반하는 단계 - 상기 소정수의 샘플링 신호들은 하나 이상의 클록 게이터 인에이블 신호로 구성된다 - 와;
    상기 소정수의 샘플링 신호들 각각에 대한 소정의 가중값을 저장하도록 된 가중 테이블에 액세스하는 단계와;
    전력 모니터에서 상기 데이터를 수신하고, 상기 소정 수의 샘플링 신호들 각각에 대한 상기 가중 테이블로부터 대응하는 가중값(weight value)을 사용하는 단계와;
    대응하는 로직 하이 값(logic high value)을 가지는 상기 샘플링 신호들의 가중값들을 합산하는 단계와;
    상기 합산에 근거하여 전력 추정 수치(power estimate number)를 결정하는 단계와; 그리고
    상기 전력 추정 수치에 응답하여, 상기 기능 블록 내에서의 전력 소비 특성(power consumption behavior)을 변경하기 위하여 상기 기능 블록으로 전압 및 주파수 조정치들(voltage and frequency adjustments)를 운반하는 단계를 포함하여 구성되고,
    상기 기능 블록은 하나 이상의 유닛들을 포함하며, 동일한 소정 수의 샘플들 및 동일한 소정 수의 샘플링 신호들에 대해, 상기 하나 이상의 유닛들 각각은 상기 기능 블록보다 낮은 신뢰 레벨(confidence level) 및 높은 정확도를 가지는 것을 특징으로 하는 방법.
  11. 제10 항에 있어서,
    상기 전력 추정 수치는 환경 변화(environment variations)에 독립적인 반복가능한 값(repeatable value)인 것을 특징으로 하는 방법.
  12. 제11 항에 있어서,
    상기 가중값들은 상기 기능 블록이 포아송 분포(Poisson distribution)를 가지는 고정 랜덤 프로세스에 의해 근사되는 노드 커패시턴스 스위칭 특성을 가지는 것으로 가정하는 통계적 분석을 이용하여 결정되는 것을 특징으로 하는 방법.
  13. 제11 항에 있어서,
    상기 가중값들의 저장은 소정 수의 클럭 사이클들 마다 한번씩 발생하는 것을 특징으로 하는 방법.
  14. 제12 항에 있어서,
    샘플링 기간(sample interval) 내에서의 소정 수의 샘플들은 상기 통계적 분석으로부터 결정되는 것을 특징으로 하는 방법.
  15. 제14 항에 있어서,
    상기 소정 수의 샘플링 신호들은, 동작 주파수, 상기 샘플링 기간, 그리고 상기 소정 수의 샘플들로부터 결정되는 것을 특징으로 하는 방법.
  16. 삭제
  17. 전력 관리기로서,
    기능 블록 및 전력 관리기와 통신하도록 된 인터페이스 - 상기 인터페이스는 소정 수(predetermined number)의 샘플링 신호들(sampled signals) 각각에 대응하는 데이터를 수신하도록 되어 있고, 상기 소정수의 샘플링 신호들은 하나 이상의 클록 게이터 인에이블 신호로 구성된다 - 와;
    상기 소정수의 샘플링 신호들 각각에 대한 소정의 가중값을 저장하도록 된 가중 테이블과;
    로직 하이 값(logic high value)을 가지는 상기 샘플링 신호들의 가중값들을 합산하도록 된 가중 누산기와;
    상기 합산에 근거하여 전력 추정 수치(power estimate number)를 결정하도록된 회로와; 그리고
    상기 전력 추정 수치 - 이 전력 추정 수치는 상기 가중값들의 합산으로부터 변환된다 - 를 상기 전력 관리기에 운반하도록 된 체인 제어를 포함하여 구성되고,
    상기 기능 블록은 하나 이상의 유닛들을 포함하며, 동일한 소정 수의 샘플들 및 동일한 소정 수의 샘플링 신호들에 대해, 상기 하나 이상의 유닛들 각각은 상기 기능 블록보다 낮은 신뢰 레벨(confidence level) 및 높은 정확도를 가지는 것을 특징으로 하는 전력 관리기.
  18. 제17 항에 있어서,
    상기 전력 추정 수치는 환경 변화(environment variations)에 독립적인 반복가능한 값(repeatable value)인 것을 특징으로 하는 전력 관리기.
  19. 제18 항에 있어서,
    상기 가중값들은 상기 기능 블록이 포아송 분포(Poisson distribution)를 가지는 고정 랜덤 프로세스에 의해 근사되는 노드 커패시턴스 스위칭 특성을 가지는 것으로 가정하는 통계적 분석을 이용하여 결정되는 것을 특징으로 하는 전력 관리기.
  20. 제19 항에 있어서,
    상기 가중값들의 저장은 소정 수의 클럭 사이클들 마다 한번씩 발생하는 것을 특징으로 하는 전력 관리기.
KR20107025182A 2008-04-11 2009-04-10 실시간 전력 추정을 위한 샘플링 칩 동작 KR101493018B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/101,598 US8010824B2 (en) 2008-04-11 2008-04-11 Sampling chip activity for real time power estimation
US12/101,598 2008-04-11
PCT/US2009/002268 WO2009126322A2 (en) 2008-04-11 2009-04-10 Sampling chip activity for real time power estimation

Publications (2)

Publication Number Publication Date
KR20110004869A KR20110004869A (ko) 2011-01-14
KR101493018B1 true KR101493018B1 (ko) 2015-02-12

Family

ID=41162470

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20107025182A KR101493018B1 (ko) 2008-04-11 2009-04-10 실시간 전력 추정을 위한 샘플링 칩 동작

Country Status (7)

Country Link
US (1) US8010824B2 (ko)
EP (1) EP2266037A2 (ko)
JP (1) JP5615262B2 (ko)
KR (1) KR101493018B1 (ko)
CN (1) CN102272735B (ko)
TW (1) TWI480757B (ko)
WO (1) WO2009126322A2 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825464B2 (en) * 2008-09-02 2014-09-02 Oracle America, Inc. Method and apparatus for parallelization of sequential power simulation
US8135970B2 (en) * 2009-03-06 2012-03-13 Via Technologies, Inc. Microprocessor that performs adaptive power throttling
US8463456B2 (en) * 2010-03-18 2013-06-11 International Business Machines Corporation Minimizing aggregate cooling and leakage power
US8527794B2 (en) * 2010-05-27 2013-09-03 Advanced Micro Devices, Inc. Realtime power management of integrated circuits
US8615672B2 (en) 2010-06-30 2013-12-24 Via Technologies, Inc. Multicore processor power credit management to allow all processing cores to operate at elevated frequency
US8942932B2 (en) 2010-08-31 2015-01-27 Advanced Micro Devices, Inc. Determining transistor leakage for an integrated circuit
US9092219B2 (en) * 2010-11-02 2015-07-28 Advanced Micro Devices, Inc. Method and system of sampling to automatically scale digital power estimates with frequency
US9052359B2 (en) * 2010-11-02 2015-06-09 Advanced Micro Devices, Inc. Method and system for varying sampling frequency to avoid software harmonics when sampling digital power indicators
KR20140001933A (ko) * 2010-11-29 2014-01-07 샌디스크 아이엘 엘티디 데이터 오류 분석을 위한 파워 소모의 감소
US9182803B2 (en) 2010-12-02 2015-11-10 Advanced Micro Devices, Inc. Load step mitigation method and apparatus
US20120144215A1 (en) * 2010-12-03 2012-06-07 Advanced Micro Devices, Inc. Maximum current limiting method and apparatus
US8756442B2 (en) 2010-12-16 2014-06-17 Advanced Micro Devices, Inc. System for processor power limit management
US8707063B2 (en) * 2010-12-21 2014-04-22 Advanced Micro Devices, Inc. Hardware assisted performance state management based on processor state changes
US8806254B2 (en) * 2011-02-01 2014-08-12 Dell Products L.P. System and method for creating and dynamically maintaining system power inventories
US8635483B2 (en) 2011-04-05 2014-01-21 International Business Machines Corporation Dynamically tune power proxy architectures
US8650428B2 (en) * 2011-07-19 2014-02-11 Ati Technologies Ulc Dynamic weight calculation in a digital power estimation and management system
US8421495B1 (en) 2011-11-03 2013-04-16 International Business Machines Corporation Speed binning for dynamic and adaptive power control
US9141159B2 (en) 2011-11-03 2015-09-22 International Business Machines Corporation Minimizing aggregate cooling and leakage power with fast convergence
TWI619038B (zh) * 2011-11-07 2018-03-21 Admedec Co Ltd Safety box
US8909961B2 (en) 2011-11-29 2014-12-09 Ati Technologies Ulc Method and apparatus for adjusting power consumption level of an integrated circuit
WO2013112249A1 (en) 2012-01-24 2013-08-01 University Of Southern California Digital circuit power measurements using numerical analysis
US9329670B2 (en) 2012-06-05 2016-05-03 International Business Machines Corporation Predicting energy savings
KR20140020404A (ko) * 2012-08-08 2014-02-19 삼성전자주식회사 집적 회로의 소비 전력 모델링 방법 및 장치
US20140298049A1 (en) 2013-03-26 2014-10-02 University Of Southern California Digital signal transition counters for digital integrated circuits
EP2849024A1 (en) 2013-09-16 2015-03-18 ST-Ericsson SA Power consumption management system and method
US9495271B2 (en) 2014-01-29 2016-11-15 Freescale Semiconductor, Inc. Statistical power indication monitor for purpose of measuring power consumption
US9811142B2 (en) * 2014-09-29 2017-11-07 Apple Inc. Low energy processor for controlling operating states of a computer system
US9477243B2 (en) 2014-12-22 2016-10-25 Intel Corporation System maximum current protection
KR101688303B1 (ko) * 2015-01-20 2016-12-20 전남대학교산학협력단 진동 모드의 파라미터 추정 장치 및 방법
US10386395B1 (en) 2015-06-03 2019-08-20 University Of Southern California Subcircuit physical level power monitoring technology for real-time hardware systems and simulators
US11556162B2 (en) 2018-03-16 2023-01-17 Advanced Micro Devices, Inc. Per-instruction energy debugging using instruction sampling hardware
US10948957B1 (en) * 2019-09-26 2021-03-16 Apple Inc. Adaptive on-chip digital power estimator
CN111694714B (zh) * 2020-06-15 2023-06-06 中国人民解放军国防科技大学 一种众核芯片功耗估算方法、装置、设备及可读存储介质
US11836031B2 (en) * 2020-11-10 2023-12-05 Advanced Micro Devices, Inc. Application override of power estimation mechanism

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020062986A (ko) * 1999-12-23 2002-07-31 인텔 코오퍼레이션 디지털 전력 스로틀을 갖는 마이크로프로세서

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764089A (en) * 1995-09-11 1998-06-09 Altera Corporation Dynamic latching device
US6473732B1 (en) * 1995-10-18 2002-10-29 Motorola, Inc. Signal analyzer and method thereof
US5712826A (en) * 1996-03-26 1998-01-27 Intel Corporation Apparatus and a method for embedding dynamic state machines in a static environment
US5917355A (en) * 1997-01-16 1999-06-29 Sun Microsystems, Inc. Edge-triggered staticized dynamic flip-flop with conditional shut-off mechanism
US6278308B1 (en) * 1999-10-08 2001-08-21 Advanced Micro Devices, Inc. Low-power flip-flop circuit employing an asymmetric differential stage
US6597620B1 (en) * 2001-07-18 2003-07-22 Advanced Micro Devices, Inc. Storage circuit with data retention during power down
US7111178B2 (en) * 2001-09-28 2006-09-19 Intel Corporation Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system
US6611435B2 (en) * 2002-01-08 2003-08-26 Intel Corporation voltage regulator with voltage droop compensation
JP2003256495A (ja) * 2002-02-27 2003-09-12 Nec Corp 消費電力計算装置及び方法
JP4130134B2 (ja) * 2003-02-26 2008-08-06 三洋電機株式会社 施設内機器の各運転モード毎の単位時間当たりの消費電力量算出装置および施設内機器の消費電力量算出装置
US7225349B2 (en) * 2003-07-25 2007-05-29 Intel Corporation Power supply voltage droop compensated clock modulation for microprocessors
US7430672B2 (en) * 2004-10-27 2008-09-30 Intel Corporation Method and apparatus to monitor power consumption of processor
TWI258702B (en) * 2004-12-15 2006-07-21 Univ Tsinghua Power estimation method using chip-design register transmission layer as basis, and recording medium of computer can access
JP2007034669A (ja) * 2005-07-27 2007-02-08 Nec Corp 消費電力モニタリングシステム及びその方法ならびにプログラム
US7301373B1 (en) * 2005-08-04 2007-11-27 Advanced Micro Devices, Inc. Asymmetric precharged flip flop
US7454637B2 (en) * 2005-09-02 2008-11-18 Intel Corporation Voltage regulator having reduced droop
US7498694B2 (en) * 2006-04-12 2009-03-03 02Micro International Ltd. Power management system with multiple power sources
US7420378B2 (en) * 2006-07-11 2008-09-02 International Business Machines Corporation Power grid structure to optimize performance of a multiple core processor
US7673160B2 (en) * 2006-10-19 2010-03-02 International Business Machines Corporation System and method of power management for computer processor systems
JP4696051B2 (ja) * 2006-11-28 2011-06-08 富士通株式会社 消費電力解析方法及びプログラム
JP4410278B2 (ja) * 2007-10-04 2010-02-03 レノボ・シンガポール・プライベート・リミテッド 電子機器、電子機器の電力制御方法、およびコンピュータが実行するためのプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020062986A (ko) * 1999-12-23 2002-07-31 인텔 코오퍼레이션 디지털 전력 스로틀을 갖는 마이크로프로세서

Also Published As

Publication number Publication date
JP2011528138A (ja) 2011-11-10
US8010824B2 (en) 2011-08-30
CN102272735A (zh) 2011-12-07
WO2009126322A2 (en) 2009-10-15
WO2009126322A9 (en) 2011-05-12
EP2266037A2 (en) 2010-12-29
TW200949598A (en) 2009-12-01
CN102272735B (zh) 2015-03-18
KR20110004869A (ko) 2011-01-14
JP5615262B2 (ja) 2014-10-29
US20090259869A1 (en) 2009-10-15
TWI480757B (zh) 2015-04-11

Similar Documents

Publication Publication Date Title
KR101493018B1 (ko) 실시간 전력 추정을 위한 샘플링 칩 동작
Sharifi et al. Accurate direct and indirect on-chip temperature sensing for efficient dynamic thermal management
US7937563B2 (en) Voltage droop mitigation through instruction issue throttling
Srinivasan et al. Lifetime reliability: Toward an architectural solution
US7576569B2 (en) Circuit for dynamic circuit timing synthesis and monitoring of critical paths and environmental conditions of an integrated circuit
US8860502B2 (en) Method and apparatus for monitoring timing of critical paths
US20070157035A1 (en) Method, system, and apparatus for runtime power estimation
US8442786B2 (en) Flexible power reporting in a computing system
Powell et al. Exploiting resonant behavior to reduce inductive noise
Yamato et al. A fast and accurate per-cell dynamic IR-drop estimation method for at-speed scan test pattern validation
US8571847B2 (en) Efficiency of static core turn-off in a system-on-a-chip with variation
Yi et al. A failure prediction strategy for transistor aging
WO2013112249A1 (en) Digital circuit power measurements using numerical analysis
US10860051B2 (en) Proactive clock gating system to mitigate supply voltage droops
Sannena et al. Low overhead warning flip-flop based on charge sharing for timing slack monitoring
Chahal et al. BTI aware thermal management for reliable DVFS designs
Fang et al. RT-level deviation-based grading of functional test sequences
Kaul et al. DVS for on-chip bus designs based on timing error correction
POTARNICHE et al. Power Dissipation Estimation of CMOS Digital Circuits at the Gate Level in VHDL
Bogliolo et al. Gate-level current waveform simulation of CMOS integrated circuits
Vanderpool et al. Deterministic frequency and voltage enhancements on the POWER10 processor
CN106018945B (zh) 动态功率计量器电路及其操作方法
Wang et al. Estimation of maximum power for sequential circuits considering spurious transitions
Bhattacharya et al. Exploring impact of faults on branch predictors' power for diagnosis of faulty module
Das et al. Impact of Inaccurate Design of Branch Predictors on Processors' Power Consumption

Legal Events

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

Payment date: 20180118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 6