KR20240044533A - 전역 집적 회로 전력 제어 - Google Patents

전역 집적 회로 전력 제어 Download PDF

Info

Publication number
KR20240044533A
KR20240044533A KR1020247009706A KR20247009706A KR20240044533A KR 20240044533 A KR20240044533 A KR 20240044533A KR 1020247009706 A KR1020247009706 A KR 1020247009706A KR 20247009706 A KR20247009706 A KR 20247009706A KR 20240044533 A KR20240044533 A KR 20240044533A
Authority
KR
South Korea
Prior art keywords
power
circuit
request
circuits
component
Prior art date
Application number
KR1020247009706A
Other languages
English (en)
Inventor
도론 라즈완
인더 엠. 소디
키이스 콕스
정 욱 조
케빈 아이 박
탈 쿠지
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/573,268 external-priority patent/US20230101217A1/en
Priority claimed from US17/573,274 external-priority patent/US20230109984A1/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20240044533A publication Critical patent/KR20240044533A/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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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

일 실시예에서, 시스템은 복수의 컴포넌트 회로들을 포함할 수 있다. 복수의 컴포넌트 회로들은 컴포넌트 회로들에 할당된 전력의 표시들에 기초하여 컴포넌트 회로들에서의 전력 소비를 제어하는 레이트 제어 회로들을 포함할 수 있다. 일 실시예에서, 레이트 제어 회로들은 컴포넌트 회로들에 대한 전력 요청들 및 신뢰성 있는 동작을 보장할 수 있는 전력의 최소량을 나타내는 최저 요청을 전송할 수 있다.

Description

전역 집적 회로 전력 제어
기술분야
본원에 설명된 실시예들은 디지털 시스템들의 전력 제어, 더욱 구체적으로 전역 전력 제어를 위한 하드웨어-기반 메커니즘에 관한 것이다.
배경기술
디지털 시스템들의 복잡성과 성능이 지속적으로 증가함에 따라, 시스템의 컴포넌트 회로들에 안정적이고 신뢰성 있게 전력을 전달하기 위한 복잡성도 증가한다. 현대의 시스템들에서, 단일 반도체 기판 또는 칩 상의 프로세서들 및 다른 컴포넌트 회로들을 포함하는 집적 회로는 ~1 내지 2 볼트 범위의 공급 전압에서 수백 암페어의 전류를 인출(draw)할 수 있다. 이러한 집적 회로들(예를 들어, 시스템 온 칩 또는 SOC(systems on a chip))은 또한 집적 회로 내에서 복수의 독립적인 전압 도메인들을 종종 가지며, 이는 동시에 상이한 공급 전압들을 가질 수 있고 상이한 부하들을 나타낼 수 있다(예를 들어, 주어진 부하에서 인출한 전류).
이하의 상세한 설명은 이제 간략하게 설명되는 첨부 도면들을 참조한다.
도 1은 시스템의 다양한 컴포넌트 회로에 대한 전력 분배기 회로(power splitter circuit) 및 레이트(rate) 제어 회로들을 포함하는 시스템의 일 실시예의 블록도이다.
도 2는 로컬 전력 제어 회로, 레이트 제어 회로 및 전력 분배기 회로를 갖는 컴포넌트 회로의 일 실시예와 이들 사이의 인터페이스들의 일 실시예를 예시하는 블록도이다.
도 3은 로컬 전력 제어 회로, 레이트 제어 회로 및 전력 분배기 회로를 갖는 컴포넌트 회로의 다른 실시예와 이들 사이의 인터페이스들의 다른 실시예를 예시하는 블록도이다.
도 4는 캐스케이드형(cascaded) 레이트 제어 회로들의 일 실시예의 블록도이다.
도 5는 전력 분배기 회로의 일 실시예의 더욱 상세한 블록도이다.
도 6은 레이트 제어 회로의 일 실시예의 더욱 상세한 블록도이다.
도 7은 전력 분배기 회로의 일 실시예의 동작을 예시하는 흐름도이다.
도 8은 레이트 제어 회로의 일 실시예의 동작을 예시하는 흐름도이다.
도 9는 SOC의 일 실시예의 블록도이다.
도 10은 복수의 SOC들을 포함하는 시스템의 일 실시예의 블록도이다.
도 11은 방법의 일 실시예를 예시하는 흐름도이다.
도 12는 방법의 다른 실시예를 예시하는 흐름도이다.
도 13은 SOC(들)를 채용할 수 있는 시스템들의 다양한 실시예들의 블록도이다.
도 14는 컴퓨터 액세스 가능한 매체이다.
본 개시에 설명된 실시예들은 다양한 수정들 및 대안적인 형태들을 취할 수 있지만, 그 특정 실시예들이 도면들에 예시의 방식으로 도시되어 있으며 본원에서 상세히 설명될 것이다. 그러나, 도면들과 그에 대한 상세한 설명은 개시된 특정 형태에 실시예들을 제한하려고 의도된 것이 아니고, 반대로 첨부된 청구 범위의 사상 및 범위에 속하는 모든 수정들, 등가물들, 대안들을 포괄하려는 의도인 것으로 이해되어야 한다. 본원에 사용된 표제들은 구성의 목적들로만 사용되며 설명의 범위를 제한하는 데 사용되도록 의도된 것은 아니다.
일부 경우들에서, 다중-레벨 전력 전달 네트워크가 제공된다. 제1 레벨의 전압 레귤레이터(들)는 제1 양(amount)의 부하 전류를 제2 레벨의 전압 레귤레이터들에 공급할 수 있다. 제2 레벨의 전압 레귤레이터들은 SOC의 다양한 독립적인 전력 네트워크들에 전력을 전달할 수 있다. 다양한 소비자들(예를 들어, SOC의 중앙 프로세싱 유닛(CPU: central processing unit)을 형성하는 프로세서들, 그래픽 프로세싱 유닛(GPU: graphics processing unit), 다양한 주변 컴포넌트 회로들("주변 기기들") 등)이 독립적인 전력 도메인들에 위치될 수 있다. 전력 도메인들 내의 로컬 전력 추정 및 전력 제어가 주어진 제2 레벨 전압 레귤레이터의 과부하를 회피하는 데 사용될 수 있다. 그러나, 동시에 피크 부하들에 있을 때 제2 레벨 레귤레이터들을 공급할 수 있는 제1 레벨 레귤레이터를 제공하는 것은 비용 효과적이지 않은데 왜냐하면 이러한 부하들은 드물기(rare) 때문이다. 따라서, 제1 레벨 전압 레귤레이터를 생산하기 위해 다른 전력 관리 메커니즘이 구현될 수 있다.
일 실시예에서, 시스템은 복수의 컴포넌트 회로들 중에서 시스템에 대한 전력 예산을 분배하도록 구성된 전력 분배기 회로를 포함한다. 전력 분배기 회로는 전력 분배 정책으로 프로그래밍 가능할 수 있으며, 정책에 기초하여 전력 예산을 분배할 수 있다. 전력 분배기 회로는 할당된 전력의 각각의 표시들을 컴포넌트 회로들에 전송하도록 구성될 수 있다. 컴포넌트 회로들은 할당된 전력의 표시들에 기초하여 전력 소비를 관리하는 레이트 제어 회로들을 포함할 수 있다. 다양한 컴포넌트 회로들이 상이한 독립적인 전력 도메인들에 포함될 수 있지만, 전체 전력 소비는 전력 분배기 회로를 통해 제어될 수 있다. 전력 예산은 예를 들어, 독립적인 전력 도메인들에 전력을 공급하는 전압 제어기들에 전력을 공급하는 최상부 레벨 전압 제어기의 능력에 기초하여 결정될 수 있고, 과부하로부터 최상부 레벨 전압 제어기를 보호하는 데 도움을 줄 수 있다.
일 실시예에서, 컴포넌트 회로들은 전력 추정기 회로들(예를 들어, 디지털 전력 추정기(DPE) 회로들)을 포함할 수 있다. DPE 회로들은 각각의 컴포넌트 회로들에서 소비되는 전력을 추정하도록 구성될 수 있고, 전력 추정치를 대응하는 레이트 제어 회로들에 제공하도록 구성될 수 있다. 레이트 제어 회로들은 전력 추정치들에 기초하여 전력 분배기 회로에 각각의 전력 요청들을 전달하도록 구성될 수 있다. 추가적으로, 일 실시예에서, 레이트 제어 회로들은 각각의 최저 요청(floor request)들을 전달하도록 구성될 수 있다. 최저 요청들은 컴포넌트 회로들의 올바른 동작을 보장하는 최소 전력을 나타낼 수 있다. 예를 들어, 최소 전력은 주어진 컴포넌트 회로의 모든 전력 소비 제어들이 활성(또는 "사용 중(engaged)")인 경우에도 주어진 컴포넌트 회로가 소비할 수 있는 전력의 최대량을 공급하기에 충분할 수 있다. 일 구현에서, 최저 요청은 감소된 전력 소비가 활성화된 경우에도 주어진 컴포넌트 회로의 누설 전류 및 주어진 컴포넌트 회로에서 발생할 수 있는 동작(예를 들어, 주어진 컴포넌트 회로가 감소된 전력 소비 제어들의 존재 시에 만들 수 있는 최소 순방향 진행)을 설명할 수 있다. 일 실시예에서, 주어진 컴포넌트 회로의 레이트 제어 회로는 주어진 컴포넌트 회로에서 소비되는 전력을 제어하기 위해 복수의 레벨들의 전력 감소 요청들을 가질 수 있고, 최저 요청은 요청된 최대 감소에 기초할 수 있다. 다른 방식으로 보면, 주어진 컴포넌트 회로는 하나 이상의 전력 감소 메커니즘들을 구현할 수 있고, 최저(floor)는 각각의 전력 감소 메커니즘들이 동시에 사용 중일 때 소비될 수 있는 전력에 기초할 수 있다. 일부 실시예들에서, 컴포넌트 회로가 최저 요청보다 적게 소비하는 것이 가능하다(예를 들어, 컴포넌트 회로에 의해 수행되는 작업(들)이 최소 순방향 진행이 제공하는 것보다 적은 활동을 요구하는 경우). 전력 분배기 회로는 각각의 컴포넌트 회로가 그 최저 요청 및 그 전력 요청의 최소값과 적어도 동일한 전력 할당을 수신하는 것을 보장할 수 있고, 전력 요청들 및 전력 정책에 기초하여 컴포넌트 회로들 간에 남은 전력을 분배할 수 있다.
컴포넌트 회로들은 시스템에 포함될 수 있는 임의의 하드웨어 컴포넌트들을 포함할 수 있다. 주어진 컴포넌트 회로는 전체적으로 컴포넌트 회로 내에서 하나 이상의 전력 관리 메커니즘들을 구현하는 전력 제어 회로를 포함할 수 있다. 즉, 컴포넌트 회로는 전력 제어 회로에 의해 유닛으로서 관리되는 전력인 엔티티일 수 있다. 예를 들어, 중앙 프로세싱 유닛(CPU) 프로세서 클러스터가 컴포넌트 회로일 수 있다. CPU 프로세서 클러스터는 하나 이상의 프로세서들 및 (예를 들어, 시스템 통신 패브릭(fabric)을 통해) 시스템의 나머지와 인터페이싱하기 위한 인터페이스 회로부를 포함할 수 있다. CPU 프로세서 클러스터는 (프로세서들로 구현된 캐시(cache)들에 추가하여) 프로세서들에 의해 공유되는 캐시 계층 구조에 하나 이상의 캐시들을 추가로 포함할 수 있다. 대안적으로, 개별 CPU 프로세서들은 컴포넌트 회로들일 수 있다. 컴포넌트 회로들의 다른 예들은 그래픽 프로세싱 유닛(GPU)들 또는 메모리 제어기들을 포함할 수 있다. 디스플레이 제어기들, 이미지 신호 프로세서들, 오디오 프로세서들, 비디오 또는 오디오 인코더/디코더 회로들, 다양한 유형들의 외부 상호 연결들에 대한 브릿지(bridge)들, 입력/출력 장치들 등과 같은 주변 컴포넌트 회로들(또는 더 간단히 주변 기기들)도 컴포넌트 회로들의 예들일 수 있다.
도 1은 시스템의 일 실시예의 블록도이다. 도 1의 실시예에서, 시스템은 전력 분배기 회로(10)에 커플링된 복수의 컴포넌트 회로들(12A 내지 12F)을 포함한다. 복수의 컴포넌트 회로들(12A 내지 12F)은 각각의 레이트 제어 회로들(20A 내지 20F)을 포함한다. 추가적으로, 예시된 실시예에서, 복수의 컴포넌트 회로들은 각각의 레이트 제어 회로(20A 내지 20F)에 커플링된 각각의 디지털 전력 추정기(DPE)/전력 제어(PC: power control) 회로들(14A 내지 14F)을 포함한다. 전력 분배기 회로(10)는 복수의 전력 정책 레지스터들(18A 내지 18N)을 포함한다. 시스템은 전력 분배기 회로(10)에 커플링된 다이 대 다이(D2D: die to die) 인터페이스 회로(24)를 추가로 포함할 수 있다.
복수의 컴포넌트 회로들(12A 내지 12F) 중 주어진 컴포넌트 회로는 도 1에 도시된 점선들(16)에 의해 구분되는 복수의 독립적인 전력 도메인들 중 하나에 포함된다. 주어진 컴포넌트 회로(12A 내지 12F)는 하나의 전력 도메인에 있을 수 있고, 하나 초과의 컴포넌트 회로(12A 내지 12F)가 주어진 전력 도메인에 있을 수 있다. 예시된 실시예에서, 단지 예로서, 컴포넌트 회로들(12A 및 12B)은 전력 도메인에 있고, 컴포넌트 회로(12C)는 다른 전력 도메인에 있고, 컴포넌트 회로들(12D 내지 12F)은 각각의 전력 도메인들에 있다. 전력 분배기 회로(10)는 또한 하나 이상의 컴포넌트 회로들(12A 내지 12F)과 공유될 수 있거나 분리될 수 있는 전력 도메인에 있다.
전력 도메인은 다른 전력 도메인들과 별도로 제어된다면 독립적일 수 있다. 예를 들어, 독립적인 전력 도메인은 시스템에 대한 전용 전압 입력들을 가질 수 있으며, 이는 예를 들어, 별도의 전압 제어기에 의해 제어될 수 있다. 따라서, 전력 도메인 내의 전력 관리는 해당 도메인에 전력을 공급하는 전압 제어기의 안정성을 보호하기에 충분할 수 있다. 그러나, 시스템 전체의 전력 관리가 전력 도메인들에 걸쳐 전력을 관리하는 데 사용될 수 있으므로, 시스템의 더 높은 레벨의 전압 제어기들을 보호할 수 있다.
전력 분배기 회로(10)는 앞서 언급한 바와 같이, 시스템에 대한 전력 예산으로부터 복수의 컴포넌트 회로들(12A 내지 12F)에 전력을 할당하도록 구성될 수 있다. 전력 예산은 시스템에 전체적으로 전력을 공급하는 전압 제어기(예를 들어, 전압 제어기들에 공급하고 차례로 다양한 전력 도메인들에 공급하는 최상부 레벨 전압 제어기)의 능력에 기초할 수 있다. 예를 들어, 이용 가능한 전력(예를 들어, 최상부 레벨 전압 제어기가 명목상 제공하는 전압과 최상부 레벨 전압 제어기가 신뢰성 있게 공급할 수 있는 최대 전류의 곱)은 복수의 크레딧들로 나타내어질 수 있으며, 여기서 주어진 크레딧은 특정된 전력량을 나타낸다. 전력 분배기 회로(10)는 해당 컴포넌트 회로에 할당된 전력량을 나타내기 위해 복수의 컴포넌트 회로들(12A 내지 12F) 각각에 각각의 크레딧 수를 제공하도록 구성될 수 있다. 전력(예를 들어, 와트)의 관점에서 크레딧들을 측정함으로써, 전력 분배기 회로(10)는 주어진 시점에서 상이한 전압들에서 동작할 수 있는 상이한 전력 도메인들에 걸쳐 전환(translating)하는 공통 포맷으로 할당된 양의 표시들을 제공할 수 있다. 전력 분배기 회로(10)는 할당된 전력의 각각의 표시들을 각각의 레이트 제어 회로들(20A 내지 20F)에 전달하도록 구성될 수 있다. 각각의 레이트 제어 회로들(20A 내지 20F)은 각각의 레이트 제어 회로들(20A 내지 20F)에 제공되는 할당된 전력의 각각의 표시에 기초하여 대응하는 컴포넌트 회로들의 전력 소비를 관리하도록 구성될 수 있다.
보다 구체적으로, 컴포넌트 회로들(12A 내지 12F)은 각각의 전력 제어 회로들(예를 들어, 도 1에 도시된 PC들, 참조 번호 14A 내지 14F의 일부)을 포함할 수 있다. 일반적으로, 전력 제어 회로는 하나 이상의 전력 관리 메커니즘들을 구현할 수 있으며, 이들 각각은 메커니즘이 사용 중이 아닐 때에 비교하여 메커니즘이 사용 중일 때 컴포넌트 회로(12A 내지 12F)의 전력 소비를 감소시키도록 설계된다. 예를 들어, 컴포넌트 회로(12A 내지 12F)가 복수의 파이프라인들을 포함하는 경우, 전력 관리 메커니즘은 활성으로 사용 중인 파이프라인들의 수를 감소시킬 수 있어, 컴포넌트 회로(12A 내지 12F)에 의해 수행되는 동작들이 감소된 수의 파이프라인들로 수행되고, 전력은 하나 이상의 파이프라인들의 비활성을 통해 절약된다. 다른 전력 관리 메커니즘은 파이프라인으로의 동작들의 이슈 레이트(issue rate)를 감소시키고, 비활성이 발생하는 파이프라인에 "버블(bubble)"을 도입하는 것을 포함할 수 있다. 또 다른 전력 관리 메커니즘은 하나 이상의 파이프라인들의 주기적인 스톨링(stalling) 또는 파이프라인에 공급되는 클럭들의 클럭 주파수를 일시적으로 감소시키는 것을 포함할 수 있다. 또한 추가적으로, 클럭 디더링(dithering), 클럭 분배기 및 클럭 스로틀링(throttling)과 같은 클럭 조작 기술들이 사용될 수 있다.
일 실시예에서, 컴포넌트 회로(12A)와 같은 주어진 컴포넌트 회로는 하위 컴포넌트 회로들(예를 들어, 도 1의 하위 컴포넌트 회로들(22A 내지 22M), 보다 간략하게는 "하위 컴포넌트들")을 가질 수 있다. 하위 컴포넌트들(22A 내지 22M)은 상대적으로 독립적일 수 있으므로, 전력 제어 회로(14A)는 나머지 컴포넌트들의 동작을 방해하지 않고 하위 컴포넌트들 중 하나 이상을 비활성화할 수 있다. 예를 들어, CPU 프로세서 클러스터는 복수의 CPU 프로세서들을 가질 수 있으며, 다른 CPU 프로세서들이 명령들을 계속 실행하는 것을 방해하지 않고 하나 이상의 CPU 프로세서들이 비활성화(예를 들어, 스톨링, 클럭 게이팅(clock gating) 또는 심지어 전력 게이팅)될 수 있다. GPU에서, 셰이더(shader), 래스터라이저(rasterizer) 등과 같은 복수의 대칭 유닛들이 있을 수 있으며, 대칭 유닛들은 하위 컴포넌트들일 수 있다. 컴포넌트 회로의 파이프라인들은 하위 컴포넌트들일 수 있다. 이러한 컴포넌트 회로에서, 전력 제어 회로(14A 내지 14F)는 다른 하위 컴포넌트들이 방해 없이 동작하도록 허용하면서 하위 컴포넌트들의 서브세트의 성능을 비활성화하거나 감소시키도록 구성될 수 있다.
일 실시예에서, 전력 분배기 회로(10)는 레지스터들(18A 내지 18N)의 전력 분배 정책으로 프로그래밍 가능할 수 있다. 이러한 실시예에서, 컴포넌트 회로들(12A 내지 12F)의 그룹들 사이에 전력 예산을 분배하는 최상부 레벨 정책(레지스터(18A))이 있을 수 있다. 컴포넌트 회로들(12A 내지 12F)은 임의의 원하는 방식으로 그룹화될 수 있다. 예를 들어, 컴포넌트 회로들(12A 내지 12F)은 유형별로 그룹화될 수 있고 최상부 레벨 정책은 유형별로 전력을 할당할 수 있다(예를 들어, 다양한 유형들에 대한 전력 예산의 다양한 퍼센티지들). 최상부 레벨 정책은 시스템의 작업 부하 특성의 변화가 발생하는 때와 같이 때때로 변할 수 있다. 유형들의 예들은 CPU 클러스터들, GPU들 및 주변 기기들을 포함할 수 있다. 주변 기기들의 다양한 서브세트들은 오디오 주변 기기들, 비디오 주변 기기들, 네트워킹 주변 기기들, 저장 주변 기기들 등과 같은 컴포넌트들의 유형들일 수 있다. 다른 실시예에서, 컴포넌트 회로들(12A 내지 12F)은 전력 도메인별로 그룹화될 수 있다. 컴포넌트 회로들(12A 내지 12F)의 임의의 그룹화가 사용될 수 있다.
각각의 그룹화 내에서, 전력 분배의 제2 레벨은 레지스터들(18B 내지 18N)에서 특정될 수 있다. 예를 들어, 레지스터들(18B 내지 18N)에는 각각의 그룹에 대한 정책이 있을 수 있다. 따라서, 동일한 유형의 컴포넌트들은 레지스터들(18B 내지 18N) 중 하나로부터의 대응하는 정책 및 최상부 레벨 전력 할당에 기초하여 전력을 할당받을 수 있다.
일 실시예에서, 도 1에 나타낸 시스템은 단일 반도체 기판, 또는 "칩" 상에 구현될 수 있다. 일 실시예에서, 시스템은 도 1에 도시된 칩과 유사한 추가 칩들을 포함하는 더 큰 시스템의 일부일 수 있다. D2D 인터페이스 회로(24)는 칩들 간에 통신하도록 구성될 수 있다. 일 실시예에서, 하나 이상의 이러한 칩들은 도 1의 시스템과 최상부 레벨 전압 제어기를 공유할 수 있다. 전력 분배기 회로(10)는 컴포넌트 회로들(12A 내지 12F)에 의해 사용되지 않는 전력 크레딧들을 다른 칩 상의 다른 전력 분배기 회로들과 공유할 수 있고/있거나 컴포넌트 회로들(12A 내지 12F)에서의 소비를 위해 다른 전력 분배기 회로들로부터 전력 크레딧들을 수신할 수 있다.
도 1의 예는 특정 수의 컴포넌트 회로들(12A 내지 12F)을 포함하지만, 다른 실시예들은 원하는 대로 임의의 수의 컴포넌트 회로들(12A 내지 12F)을 구현할 수 있다는 점에 유의한다.
이제 도 2를 참조하면, 전력 분배기 회로(10)에 커플링된 레이트 제어 회로(20A) 및 DPE/PC 회로(12A)를 갖는 컴포넌트 회로(12A)의 일 실시예의 블록도가 도시되며, 이들 사이의 인터페이스들의 일 실시예가 도시된다. 다른 컴포넌트 회로들(12B 내지 12F)도 유사할 수 있다.
DPE/PC 회로(14A)는 컴포넌트 회로(12A) 내의 전력 소비를 제한하기 위해 회로(14A)의 PC 부분에 대한 하나 이상의 입력들에 기초한 전력 관리 메커니즘들을 사용하도록 구성될 수 있다. 예를 들어, 도 2의 레이트 제어 회로(20A)는 감소0(reduce0) 및 감소1 입력들을 제공할 수 있다. 각각의 입력은 감소된 전력 소비의 상이한 양을 요청할 수 있다(예를 들어, 감소된 전력 소비의 하나의 양은 다른 양보다 더 클 수 있음). 일 실시예에서, DPE/PC 회로(14A)의 DPE 부분은 예를 들어, 컴포넌트 회로(12A)의 전력 소비를 관리하기 위해 추정된 전력 소비에 기초하여 PC 부분에 대한 입력들 및 전력 도메인에 대한 전력 예산에 기초하여 하나 이상의 로컬 제한들을 제공할 수 있다. 다른 실시예에서, DPE 부분은 전력 추정치들을 제공할 수 있고 PC 부분은 레이트 제어 회로(20A)로부터만 입력들을 수신할 수 있다. 레이트 제어 회로(20A)는 하나 이상의 입력들 중 제1 입력(예를 들어, 감소0)을 사용하여 감소된 전력 소비의 제1 레벨 및 하나 이상의 입력들 중 제2 입력(예를 들어, 감소1)을 사용하여 감소된 전력 소비의 제2 레벨을 요청할 수 있으며, 여기서 제2 레벨은 제1 레벨보다 더 많은 감소를 특정한다.
DPE/PC 회로(14A)는 DPE 전력 추정치를 레이트 제어 회로(20A)에 보고하도록 구성될 수 있다. 레이트 제어 회로(20A)는 (도 2에서 "할당된") 전력 회로(10)로부터 할당된 전력의 표시뿐만 아니라 DPE 전력 추정치(예를 들어, 현재 전력 소비 추정치)를 수신할 수 있으며, 레이트 제어 회로(20A)는 DPE 전력 추정치 및 할당된 전력에 기초하여 컴포넌트 회로(12A)의 전력을 관리하도록 구성될 수 있다. DPE 추정치와 할당된 전력 표시는 크레딧의 관점에서 측정될 수 있다. 추정치, 할당된 전력 및 소비되지 않은 이전 할당들로부터의 임의의 남은 할당된 전력에 기초하여, 레이트 제어 회로(20A)는 전력 제어 회로에 대한 감소0 및 감소1 입력들을 생성할 수 있다. 예를 들어, 할당된 전력 크레딧들이 남은 크레딧들에 추가될 수 있고, DPE 추정치가 크레딧들에서 감산되어 할당된 전력의 남은 양을 생성할 수 있다. 할당된 전력의 남은 양이 (레이트 제어 회로(20A)에서 프로그래밍 가능할 수 있는) 제1 임계값 아래로 떨어지면, 레이트 제어 회로(20A)는 감소0 입력을 어써트할 수 있고 전력 제어 회로(14A)는 하나 이상의 전력 관리 메커니즘들을 사용 중일 수 있다. 사용 중인 메커니즘들은 전력 소비를 감소시킬 수 있고, 가능하게는 성능을 저하시킬 수 있다. 그러나, 추가 전력 관리 메커니즘들이 사용 중이거나 사용 중인 전력 관리 메커니즘들이 더 강력하게 적용하는 경우 성능 손실은 해당 성능 손실보다 더 작을 수 있다. 할당된 전력의 남은 양이 제1 임계값보다 낮은 제2 임계값 아래로 떨어지는 경우, 레이트 제어 회로(20A)는 감소1 입력을 어써트할 수 있고, 전력 제어 회로(14A)는 하나 이상의 추가 전력 관리 메커니즘들을 사용 중이거나 및/또는 이미 사용 중인 메커니즘들을 더욱 강력하게 적용할 수 있어, 전력 소비를 추가로 감소시키고 성능을 더욱 크게 저하시킨다. 예시된 실시예에서는 2개의 입력들이 도시되고 감소된 전력 소비의 2개의 레벨들이 구현되지만, 다른 실시예들에서는 2개 초과의 레벨들이 사용될 수 있다. 전력 감소 제어 신호들의 수는 증가될 수 있고/있거나 신호들의 인코딩은 감소된 전력 소비의 상이한 레벨들을 특정하는 데 사용될 수 있다. (예를 들어, 이러한 실시예에서 어써션(assertion) 또는 감소1을 통해) 감소 전력 소비의 최고 레벨이 요청될 때, 전력 제어 회로(14A)는 자신이 구현하는 각각의 전력 관리 메커니즘들과 메커니즘에 의해 지원되는 감소의 최대 레벨을 사용 중일 수 있다.
감소된 전력 소비를 요청하는 것 외에, 레이트 제어 회로(20A)는 (예를 들어, 전력 분배기 회로(10)에 대한 "감소된" 출력을 통해) 전력 소비 감소가 사용 중임을 보고하도록 구성될 수 있다. 일 실시예에서, (예를 들어, 주어진 컴포넌트 회로가 원하는 것보다 감소된 전력 소비 하에서 더 자주 동작하기 때문에) 전력 분배기 회로(10)는 전력 분배 정책이 수정되어야 하는지 결정하기 위해 소프트웨어 의한 잠재적 분석을 위해 다양한 컴포넌트 회로들(12A 내지 12F)로부터의 감소된 출력들의 어써션을 기록하도록 구성될 수 있다. 다른 실시예에서, 전력 분배기 회로(10)는 감소된 신호 어써션들의 빈도에 기초하여 하드웨어에서 전력 분배 정책을 자동으로 조정하도록 구성될 수 있다.
일 실시예에서, 레이트 제어 회로(20A)는 전력 요청(도 2의 "요청(Request)") 및 최저 요청(도 2의 "최저(Floor)")을 생성하여 전력 분배기(10)에 전송하도록 구성될 수 있다. 전력 요청은 예를 들어, 이전에 할당되고 소비된 전력뿐만 아니라 DPE/PC 회로(14A)로부터의 DPE 전력 추정치에 기초할 수 있다. DPE/PC 회로(14A)는 대응하는 컴포넌트 회로(12A)의 올바른 동작을 보장하기 위한 전력의 최소량을 나타내는 최저도 제공할 수 있다. 레이트 제어 회로(20A)는 최저 요청으로서 DPE/PC 회로(14A)에 의해 제공된 최저 요청을 전력 분배기 회로(10)에 전송할 수 있다. 전력 분배기 회로(10)는 복수의 컴포넌트 회로들(12A 내지 12F)이 각각의 최저 요청들 및 각각의 전력 요청들의 최소값과 적어도 동일한 전력의 할당을 수신하는 것을 보장하도록 구성될 수 있고, 전력 분배 정책 및 각각의 전력 요청들에 기초하여 남은 전력 예산을 할당하도록 구성될 수 있다.
최저 요청은 컴포넌트 회로(12A)에 대한 공급 전압 및 온도와 같은 다양한 요인들에 따를 수 있다. 온도는 예를 들어, 컴포넌트 회로(12A)의 누설 전류에 영향을 미칠 수 있다. 일 실시예에서, 최저 요청은 DPE/PC 회로(14A)가 야기할 수 있는 감소된 전력 소비의 최대량에 기초할 수 있다. 예를 들어, 도 2의 실시예에서, 최저 요청은 감소1 입력이 어써트될 때 소비되는 전력에 기초할 수 있다. 다른 방식으로 보면, 최저 요청은 DPE/PC 회로(14A)/컴포넌트 회로(12A)에 의해 구현된 전력 관리 메커니즘들 각각이 전체 사용 중일 때 소비될 수 있는 전력에 기초할 수 있다. 컴포넌트 회로(12A)의 활동량은 각각의 전력 관리 메커니즘들이 전체 사용 중일 때 발생할 수 있는 잠재적 활동의 전체량보다 낮을 수 있으며, 이 경우 최저 요청은 엄격히 필요한 것보다 높을 수 있다. 그러나, 최저 요청을 제공하는 것은 전체 활동량이 수행되고 있는 경우 충분한 전력이 제공되는 것을 보장할 수 있다. 일 실시예에서, 최저 요청은 컴포넌트 회로(12A)에 의해 소비되는 누설 전력(예를 들어, 컴포넌트 회로(12A)에서 사용하는 동안 비활성 트랜지스터들에 의해 경험되는 누설 전류에 컴포넌트 회로(12A)에 대한 공급 전압을 곱한 값)에 추가로 기초할 수 있다.
일 실시예에서, 컴포넌트 회로(12A)에서 실제로 발생하는 활동량이 감소1 입력이 어써트될 때 가능한 전체 활동량보다 작은 경우 전력 요청은 최저 요청보다 작을 수 있다. 일 실시예에서, 전력 요청이 최저 요청보다 작은 경우, 전력 분배기 회로(10)는 최저 요청 대신에 전력 요청을 할당하도록 구성될 수 있다. 다른 실시예에서, (예를 들어, 회로(14A)의 DPE 부분으로부터의 전력 추정치가 부정확한 경우) 전력 요청이 너무 낮은 것에 대한 보호로서 최저 요청은 전력 요청보다 높은 경우에도 여전히 할당될 수 있다.
일 실시예에서, 최저 요청은 상대적으로 빈번하지 않게 변할 수 있다. 예를 들어, 최저 요청은 온도 변화에 따라 변할 수 있으며, 이는 전력이 요청되고 할당되는 빈도에 비해 상대적으로 느리게 발생할 수 있다. 최저 요청은 컴포넌트 회로(12A)에 대한 전력 상태 변화가 이루어질 때 변할 수 있으며, 이는 컴포넌트 회로(12A)의 공급 전압 및 클럭 주파수를 증가시키거나 감소시킬 수 있다. 최저 요청이 빈번하지 않게 변하기 때문에, 각각의 레이트 제어 회로(20A 내지 20N)와 전력 분배기 회로(10) 사이의 물리적 상호 연결(예를 들어, 배선)은 전력 요청과 최저 요청을 전송하기 위해 동일한 물리적 상호 연결을 공유함으로써 감소될 수 있다. 즉, 물리적 상호 연결은 전력 요청 및 최저 요청을 전송하기 위한 공유된 버스를 포함할 수 있다. 이러한 경우, 각각의 레이트 제어 회로(20A 내지 20F)는 주어진 시점에 공유된 버스 상에서 전송하기 위해 각각의 전력 요청 및 각각의 최저 요청 중 하나를 선택하도록 구성될 수 있다.
도 3은 레이트 제어 회로(20A)/컴포넌트 회로(12A)에 대한 전력 요청 및 최저 요청을 전송하기 위한 공유된 물리적 상호 연결의 예를 예시하는 블록도이다. 다른 레이트 제어 회로들(20B 내지 20F)/컴포넌트 회로들(12B 내지 12F)도 유사할 수 있다. 예시된 실시예에서, DPE/PC 회로(14A)는 DPE 전력 추정치 및 최저 요청을 제공할 수 있고, 도 2와 관련하여 위에서 논의한 것과 유사하게, 레이트 제어 회로(20A)로부터 감소0 및 감소1 입력들을 수신할 수 있다. 레이트 제어 회로(20A)는 도 2와 관련하여 위에서 논의된 것과 유사하게, 할당된 전력의 표시를 수신하고 감소된 출력을 통해 전력 감소를 보고할 수 있다. 컴포넌트 회로(12A)는 레이트 제어 회로(20A)로부터의 최저 요청과 전력 요청 사이에서 선택하기 위해 멀티플렉서(먹스(mux)) 회로(30)를 포함할 수 있고, 공유된 요청/최저 버스(floor bus) 상에서 선택된 요청을 전력 분배기 회로(10)로 전송할 수 있다. 레이트 제어 회로(20A)는 먹스(30)에 대한 먹스 선택 제어를 생성할 수 있으며, 이는 전력 요청 또는 최저 요청이 전송되었는지 여부를 식별하기 위해 요청/최저 버스(또는 요청/최저 버스 옆) 상의 추가 비트/신호로서 제공될 수 있다.
레이트 제어 회로(20A)는 전력 분배기 회로(10)로의 전송을 위해 전력 요청과 최저 요청 사이에서 선택하기 위한 임의의 메커니즘을 채용할 수 있다. 예를 들어, 레이트 제어 회로(20A)는 최저 요청의 가장 최근의 전송 이후 최저 요청의 변화에 기초하여 최저 요청을 선택하도록 구성될 수 있다. 레이트 제어 회로(20A)는 전력 요청의 가장 최근 전송 이후의 전력 요청의 변화에 기초하여 전력 요청을 선택하도록 구성될 수 있다. 레이트 제어 회로(20A)는 전력 요청의 가장 최근 전송 이후의 전력 요청에 변화가 없고, 최저 요청의 가장 최근 전송 이후의 최저 요청에 변화가 없음에 기초하여 최저 요청과 전력 요청 중 최소로 최근에 전송된 것을 선택하도록 구성될 수 있다. 전력 분배기 회로(10)는 (예를 들어, 최저 요청과 전력 요청 중 어느 것이 선택되었는지 나타내는 레이트 제어 회로(20A)에 의해 제공되는 선택 표시에 기초하여) 전력 요청과 최저 요청 중 선택되지 않은 것에 대한 최신 요청으로서 이전에 수신된 요청을 사용하도록 구성될 수 있다.
일 실시예에서, 시스템은 동일한 전력 및 최저 요청들을 공유하는 2개 이상의 컴포넌트 회로들(12A 내지 12F)의 캐스케이딩을 지원할 수 있다. 도 4는 컴포넌트 회로들(12A 및 12B)이 캐스케이딩되는 일 실시예를 도시하는 예이다. 요청 및 최저에 대한 공유된 버스를 갖는 도 3과 유사한 일 실시예는 유사한 방식으로 캐스케이드를 지원할 수 있다. 컴포넌트 회로(12A)는 1차 회로일 수 있으므로, 전력 분배기 회로(10)에 대한 인터페이스(예를 들어, 최저 요청 및 전력 요청, 그리고 할당된 전력 표시)를 가질 수 있다. 레이트 제어 회로(20A)는 또한 컴포넌트 회로(12B)의 DPE/PC 회로(14B)에도 제공될 수 있는 DPE/PC 회로(14A)에 대한 감소0 및 감소1 출력들을 제어하도록 구성될 수 있다. DPE/PC 회로(14B)는 DPE 전력 추정치를 레이트 제어 회로(20B)에 제공할 수 있고, 이는 DPE 전력 추정치를 레이트 제어 회로(20A)에 전달할 수 있다. 대안적으로, DPE/PC 회로(14B)는 DPE 전력 추정치를 레이트 제어 회로(20A)에 직접 제공할 수 있다. 레이트 제어 회로(20A)는 DPE/PC 회로(14A)와 DPE/PC 회로(14B) 모두로부터의 DPE 전력 추정치들에 기초하여 전력 요청을 생성할 수 있다. 일 실시예에서, 컴포넌트 회로들(12A 및 12B)은 동일한 기본 설계의 인스턴스들일 수 있으므로, 레이트 제어 회로(20A)에 의해 생성된 최저 요청은 DPE/PC(14A)로부터의 최저 요청의 2배일 수 있다. 대안적으로, DPE/PC 회로(14B)는 레이트 제어 회로(20B)를 통해 레이트 제어 회로(20A)에 또는 레이트 제어 회로(20A)로 직접 최저 요청을 제공할 수 있다. 컴포넌트 회로들(12A 및 12B)을 캐스케이딩하는 것은 전력 분배기 회로(10)에 대한 인터페이스들의 수를 감소시킬 수 있고, 시스템을 구현하는 반도체 다이 상의 잠재적으로 다른 위치들에 물리적 인터페이스들을 배선하는 복잡성들을 감소시킬 수 있다.
도 5는 더욱 상세히 도시된 전력 분배기 회로(10)의 일 실시예의 블록도이다. 예시된 실시예에서, 전력 분배기 회로(10)는 예산 생성 회로(40), 최상부 분배 제어 회로(42), 제2 레벨 분배 제어 회로(44), 잔여 분배 회로(46), 전송 회로(48), 원격 측정 누적 회로(50) 및 D2D 공유 제어 회로(52)를 포함할 수 있다. 예산 생성 회로(40)는 D2D 공유 제어 회로(52)와 최상부 분배 제어 회로(42) 및 하나 이상의 전력 상태 입력들에 커플링된다. 최상부 분배 제어 회로는 레지스터(18A)와 제2 레벨 분배 제어 회로(44)에 커플링되며, 이는 컴포넌트 회로들(12A 내지 12F)로부터의 전력 요청들 및 최저 요청들(그리고 더 구체적으로는 레이트 제어 회로(20A 내지 20F)), 레지스터들(18B 내지 18N) 및 잔여 분배 회로(46)에 커플링된다. 잔여 분배 회로(46)는 전송 회로(48)에 커플링되고, 이는 할당된 전력 표시들을 제공하기 위해 컴포넌트들(12A 내지 12F)(그리고 더 구체적으로는 레이트 제어 회로들(20A 내지 20F))에 커플링된다. D2D 공유 제어 회로(52)는 D2D 인터페이스 회로(24)에 커플링되고, 원격 측정 누적 회로(50)는 컴포넌트들(12A 내지 12F)(그리고 더 구체적으로는 레이트 제어 회로들(20A 내지 20F))로부터의 감소된 신호에 커플링된다.
전력 상태 입력들은 시스템의 다양한 전원으로부터 이용 가능한 전력량을 나타내는 정보를 제공할 수 있다. 예를 들어, 전력 관리자 회로는 컴포넌트 회로들(12A 내지 12F) 중 하나일 수 있으며, 전력 관리자에 의해 관리되는 다양한 전력 상태들뿐만 아니라 전압 레귤레이터들 및/또는 전압 레귤레이터들을 제어하는 외부 전력 관리 유닛의 다른 부분들로부터의 입력들에 기초하여 이용 가능한 전력량을 나타낼 수 있다. 입력들은 전압 레귤레이터들의 과부하 등으로 인해 임의의 저전압 이벤트들이 검출되는 경우, 레귤레이터의 부하에 관한 정보를 제공할 수 있다. 이러한 입력들 및 프로그래밍 가능한 구성 데이터에 기초하여, 예산 생성 회로는 예를 들어, 각각의 전력 크레딧이 특정 전력량(예를 들어, 와트 수)을 나타내는 전력 크레딧들의 수로서 나타낸 이용 가능한 전력량의 표시를 생성하도록 구성될 수 있다. 예산 생성 회로(40)는 이용 가능한 예산을 최상부 분배 제어 회로(42)에 제공할 수 있다.
최상부 분배 제어 회로(42)는 예를 들어, 컴포넌트 회로 유형별로 컴포넌트 회로들의 다양한 그룹들 중에서 전력 예산을 분배하도록 구성될 수 있다. 레지스터(18A)로부터의 최상부 분배 정책은 분배를 제어하여, 예를 들어, CPU 프로세서들, GPU 프로세서들, 어떠한 특정의 주변 기기들 및 시스템의 나머지에 할당되는 이용 가능한 전력의 퍼센티지들을 특정할 수 있다. 상당한 유연성이 최상부 분배 정책을 특정하는 데 이용 가능할 수 있지만, 적어도 각각의 컴포넌트 회로(12A 내지 12F)에 대한 전력의 최저 양은 올바른 동작을 보장하기 위해 정책을 통해 이용 가능해야 한다. 일 실시예에서, 전력 분배기 회로(10)는 전력의 최저 양을 제공하기 위해 정책을 무시하도록 구성될 수 있다. 즉, 주어진 컴포넌트 회로들의 그룹이 그룹의 멤버들에게 전력의 최저 양을 제공하기 위해 정책에 따라 너무 적은 전력을 할당받은 경우, 전력 분배기 회로(10)는 컴포넌트 회로들이 최저(또는 최저보다 적은 경우 요청량)를 수신하는 것을 보장할 수 있다.
제2 레벨 제어 회로(44)는 최상부 분배 제어 회로(42)로부터 최상부 레벨 전력 할당들을 수신할 수 있고, 레지스터들(18B 내지 18N)의 컴포넌트 정책들 및 각각의 컴포넌트 회로로부터의 전력 요청 및 최저 요청에 기초하여 각각의 그룹의 컴포넌트 회로들 중에서 각각의 최상부 레벨 할당을 할당할 수 있다.
제2 레벨 전력 분배는 다양한 컴포넌트 회로들의 전력 요청들에 적어도 부분적으로 기초하여 결정되기 때문에, 하나 이상의 최상부 레벨 그룹들로부터 할당되지 않은 전력의 나머지가 있을 수 있는 것이 가능하다. 할당되지 않은 전력은 잔여 분배 회로(46)에 의해 분배될 수 있다. 일 실시예에서, 그룹이 남은 전력 크레딧들을 갖고 다른 그룹이 크레딧 부족으로 인해 모든 전력 요청들을 충족할 수 없는 경우, 남은 전력 크레딧들이 전력 크레딧들이 부족한 그룹의 컴포넌트 회로들에 대한 추가 크레딧들로서 분배될 수 있다. 대안적으로, 나머지 크레딧은 분배되어 요청되지 않은 다양한 컴포넌트 회로들에 대한 추가 크레딧들로서 전송될 수 있다. 다른 실시예에서, 나머지 크레딧들은 다른 다이와의 공유를 위해 D2D 공유 제어 회로(52)에 분배될 수 있다. 위의 분배 전략들의 조합들도 구현될 수 있다(예를 들어, 요청되지 않은 크레딧들로서 나머지의 일부 그리고 공유된 크레딧들로서 나머지의 다른 일부를 D2D 공유 제어 회로(52)를 통해 다른 다이에 분배함).
할당된 전력 크레딧들은 할당된 전력 크레딧들을 컴포넌트 회로들(12A 내지 12F)에 전송하도록 구성될 수 있는 전송 회로(48)에 제공될 수 있다. 일 실시예에서, 전송 회로(48)는 지연 매칭을 구현할 수 있어, 전력 분배기 회로(10)에 물리적으로 더 가까운 컴포넌트 회로가 전력 분배기 회로(10)로부터 물리적으로 더 멀리 있는 컴포넌트 회로들(12A 내지 12F)과 대략 동시에 그 전력 할당을 수신한다. 예를 들어, 각각의 전력 할당은 대응하는 컴포넌트 회로들(12A 내지 12F)에 대한 실제 운송 지연과 (예를 들어, 클럭 사이클의 세분화(granularity)에서) 컴포넌트 회로들(12A 내지 12F) 중 가장 먼 것에 대한 운송 지연 사이의 차이에 의해 지연될 수 있다.
원격 측정 누적 회로(50)는 예를 들어, 레지스터들(18A 내지 18N)의 분배 정책들을 잠재적으로 수정하기 위한 비교 및 다른 분석을 위해 각각의 컴포넌트 회로(12A 내지 12F)로부터 감소된 표시들을 누적하도록 구성될 수 있다. 원격 측정 누적 회로(50)는 감소 신호 어써션들을 카운트하기 위한 카운터들을 포함할 수 있고, 카운터들은 소프트웨어-판독 가능할 수 있다.
D2D 공유 제어 회로(52)는 D2D 인터페이스(24)에 커플링될 수 있다. 전력 분배기 회로(10)가 다른 다이와 공유될 수 있는 미사용 크레딧들이 있다고 결정하면, D2D 공유 제어 회로(52)는 크레딧들을 D2D 인터페이스 회로(24)에 전송하도록 구성될 수 있다. 추가적으로, 다른 다이가 현재 다이와 크레딧들을 공유하는 경우, D2D 공유 제어 회로(52)는 D2D 인터페이스 회로(24)로부터 공유된 크레딧들을 수신하도록 구성될 수 있으며, 전력 예산에 추가되도록 이를 예산 생성 회로(40)에 제공할 수 있다.
도 6은 더욱 상세한 레이트 제어 회로(20A)의 일 실시예의 블록도이다. 다른 레이트 제어 회로들(20B 내지 20F)도 유사할 수 있다. 예시된 실시예에서, 레이트 제어 회로(20A)는 DPE 프로세싱 회로(60), 감소 제어 회로(62) 및 비례/적분(PI: proportional/integral) 제어 회로(64)를 포함한다. DPE 프로세싱 회로(60)는 감소 제어 회로(62) 및 PI 제어 회로(64)에 커플링된다.
DPE 프로세싱 회로(60)는 DPE/PC 회로(20A)로부터 DPE 전력 추정치를 수신하도록 구성될 수 있고, 선택적으로 캐스케이드형 구성(도 6의 점선)의 다른 DPE/PC 회로로부터 DPE 전력 추정치를 수신할 수 있다. DPE/PC 회로(20A)는 수신된 DPE 전력 추정치를 더하도록 구성될 수 있으며(그리고 다른 컴포넌트 회로로부터의 DPE 전력 추정치는 사용되지 않는 경우에 0)(가산기 회로(66)), 레이트 제어 회로(20A)에 의해 서빙되는 DPE 전력 추정치를 생성한다. 예를 들어, 컴포넌트 회로(12A)가 다른 컴포넌트 회로(12B 내지 12F)가 1차 회로인 다른 컴포넌트 회로(12B 내지 12F)에 캐스케이딩되는 경우, DPE 전력 추정치는 다른 레이트 제어 회로에 의한 가능한 사용을 위해 출력될 수 있다. DPE 프로세싱 회로(60)는 또한 전력 분배기 회로(10)로부터 할당된 전력 표시를 수신할 수 있고, 할당된 전력(가산기 회로(68))으로부터 가산기(64)에 의해 출력된 DPE 전력 추정치를 감산하도록 구성될 수 있다. 차이는 가산기(66)로부터의 DPE 전력과 함께 남은 전력 크레딧의 측정치일 수 있으며, PI 제어 회로(64) 및 감소 제어 회로(62)에 제공될 수 있다. 일 실시예에서, 남은 전력 크레딧들은 이전 할당들로부터 누적된 전력 크레딧들의 세트에 가산될 수 있고, 결과는 대응하는 컴포넌트 회로에 의한 사용을 위해 이용 가능한 전력 크레딧들의 전체 수일 수 있다. 누적된 크레딧들은 대응하는 컴포넌트 회로의 작업 부하의 급격한 증가가 발생할 때 전력 크레딧들의 고갈에 대해 보호할 수 있으며, 레이트 제어 회로로부터 전력 분배기로의 왕복 지연이 발생하여 증가된 작업 부하를 지원하기 위해 잠재적으로 더 많은 크레딧들을 할당한다. 증가된 작업 부하에 대한 할당을 위해 이용 가능한 크레딧들이 충분하지 않은 경우, 감소된 전력 소비는 후속적으로 감소 제어 회로(62)에 의해 시행될 수 있다. 크레딧들을 누적하는 실시예들에서, 누적 크레딧들은 또한 남은 전력 크레딧들을 대신하여 PI 제어 회로(64)에 제공될 수 있다.
감소 제어 회로(62)는 남은 전력 크레딧을 각각 임계값 1 및 0과 비교할 수 있는 비교기 회로들(70 및 72)에 남은 전력 크레딧을 제공할 수 있다. 남은 전력 크레딧이 임계값 0(비교기(72)) 아래로 떨어지면, 감소 제어 회로는 감소0을 어써트하도록 구성될 수 있다. 남은 전력 크레딧이 임계값 1(비교기(70)) 아래로 떨어지면, 감소 제어 회로는 감소1을 어써트하도록 구성될 수 있다. 일 실시예에서, 감소 제어 회로(62)는 비교기 결과들에 히스테리시스(hysteresis)를 적용하도록 구성될 수 있어, 감소 신호들이 (예를 들어, 감소 결과들을 평활화하기 위해) 빠르게 연속하여 어써트/디어써트(deassert)되지 않는다. 감소 제어 회로(62)는 감소0 및 감소1 신호들 중 하나 또는 둘 모두가 어써트되는 경우 전력 분배기 회로(10)에 감소된 출력을 추가로 어써트할 수 있다. 최저 요청은 또한 실시예에 따라 레이트 제어 회로(20A)에 의해 수신되어 먹스(30) 또는 전력 분배기 회로(10)에 전달될 수 있다.
PI 제어 회로(64)는 레이트 제어 회로(20A)로부터 전력 요청을 생성하기 위해 가산기 회로(66)로부터의 DPE 전력 및/또는 가산기(68)로부터의 차이(또는 위에서 언급한 바와 같이 누적된 크레딧들)에 대해 동작하도록 구성될 수 있다. 예에서, 비례/적분 제어 함수가 사용될 수 있다. 비례 제어가 DPE 전력 추정에 적용될 수 있고, 적분 제어가 DPE 프로세싱 회로(60)로부터 제공된 차이에 적용될 수 있거나, 그 반대도 가능하다. 제어 동작의 결과는 전력 요청일 수 있다. PI 제어가 이 실시예에서 제공되지만, 다른 실시예들은 비례, 적분 및/또는 미분 제어뿐만 아니라 다른 제어 옵션들 중 하나 이상을 포함하는 다른 제어 피연산자 및 그 조합을 구현할 수 있다.
일 실시예에서, DPE 프로세싱 회로(60) 및 감소 제어 회로(62)는 컴포넌트 회로(12A)의 클럭 도메인에서 동작할 수 있고, PI 제어 회로(64)는 전력 분배기 회로(10)의 클럭 도메인에서 동작할 수 있다는 점에 유의한다. 예를 들어, 일 실시예에서, 전력 분배기 회로(10)는 컴포넌트 회로들(12A 내지 12F)보다 일반적으로 더 느린 클럭에서 동작할 수 있다(예를 들어, 전력 분배기 회로(10)에 대해 수십 메가헤르츠(MHz) 정도 대 컴포넌트 회로들(12A 내지 12F)에 대해 기가헤르츠(GHz) 정도까지). 따라서, 레이트 제어 회로(20A) 내에(예를 들어, PI 제어 회로(64)와 DPE 프로세싱 회로(60)/감소 제어 회로(62) 사이의 경계에서) 교차하는 클럭 도메인이 있을 수 있다. 따라서, 전력 분배기 회로(10)에 의한 전력 할당들은 전력 분배기 클럭의 하나의 클럭 주기 동안 할당된 전력일 수 있고, 전력 요청들 및 최저 요청들은 다음 클럭 주기에 대한 것일 수 있다.
도 7은 전력 분배기 회로(10)의 일 실시예의 동작의 단순화된 뷰를 예시하는 흐름도이다. 블록들은 이해의 용이성을 위해 특정 순서로 도시되어 있지만, 다른 순서들이 사용될 수도 있다. 블록들은 전력 분배기 회로(10) 내의 조합 로직에 의해 병렬로 수행될 수 있다. 블록들, 블록들의 조합들 및/또는 전체적으로 흐름도는 복수의 클럭 사이클들에 걸쳐 파이프라이닝될 수 있다. 전력 분배기 회로(10)는 도 7에 도시된 동작을 구현하도록 구성될 수 있다.
전력 분배기 회로(10)는 할당될 전력 예산을 결정하도록 구성될 수 있다(블록 80). 예를 들어, 전력 예산은 위에서 논의된 바와 같이, 다양한 전력 상태 전력 상태 입력들에 기초할 수 있다. 전력 예산은 전력 상태 입력들에 기초하여 수정될 수 있는 다양한 프로그래밍 가능한 값들(예를 들어, 초기 예산)에 기초할 수 있다. 예를 들어, 전력 상태 입력들은 온-시스템(on-system) 하드웨어가 아직 문제를 검출하지 않았음에도 불구하고 전력 관리 유닛과 같은 (집적 회로에 대한) 외부 하드웨어에 의해 전력 감소가 요청됨을 나타낼 수 있다. 이러한 경우 전력 분배기 회로(10)는 예산을 감소시킬 수 있다. 일 실시예에서, 제1 레벨 전압 레귤레이터는 활성 위상의 최대 수보다 적은 수로 동작할 수 있으며(예를 들어, 단일-위상 모드), 전력 분배기 회로(10)는 감소된 수의 위상이 지원할 수 있는 부하 전류에 기초하여 예산을 감소시킬 수 있다(예를 들어, 감소된 예산은 위상의 감소된 수에 대응하도록 제공될 수 있으며, 전력 분배기 회로는 감소된 위상 모드가 활성임을 나타내는 입력에 기초하여 감소된 예산으로 스위칭할 수 있음). 일 실시예에서, 초기 예산은 사용 중에 소프트웨어를 제어함으로써 상이한 값들로 프로그래밍될 수 있다(예를 들어, 테스트되고 안전한 것으로 알려진 사전 정의된 범위 내에서, 사전 정의된 범위는 전력 분배기 회로(10) 하드웨어에 의해 시행될 수 있음). 예산 감소를 유발하는 전력 상태 입력의 발생을 감소시키거나 제거하기 위해 소프트웨어 제어는 예산을 수정할 수 있으며, 이는 전체 효율을 개선할 수 있다.
전력 분배기 회로(10)는 최저 요청들을 충족시키기 위해 크레딧들을 할당할 수 있다(블록 82). 이전에 언급된 바와 같이, 일부 실시예들에서, 최저 요청은 더 낮은 전력 요청에 의해 무시될 수 있으며 대신 더 낮은 전력 요청 크레딧들이 할당될 수 있다. 최저 할당 이후에 남아 있는 전력 예산 크레딧들은 최상부 레벨 분배 우선 순위에 기초하여 할당될 수 있으며(블록 84), 그런 다음 제2 레벨 정책 및 전력 요청들에 기초하여 다양한 컴포넌트 회로들에 할당될 수 있다(블록 86).
위의 크레딧 할당은 다소 단순화되었으며 설명된 대로 또는 상이한 방식들로 구현될 수 있다는 점에 유의한다. 예를 들어, 크레딧들은 최상부 분배에 따라 할당된 다음 제2 레벨에서 최저 및 전력 요청들에 할당될 수 있다. 모든 최저 요청들에 대해 제2 레벨에서 할당할 크레딧들이 불충분한 경우, 최저 요청들을 충족시키기 위해 추가 크레딧들이 추가될 수 있다(예를 들어, 예비 풀로부터, 또는 사전 결정된 최대량까지 장래의 크레딧들로부터 차용). 임의의 메커니즘이 사용될 수 있다.
블록들(80, 82, 84 및 86)에 의해 나타내어진 할당으로부터 남은 크레딧들이 없다면(결정 블록 88, "아니오" 구간), 할당은 이러한 반복에 대해 완료될 수 있다. 남은 크레딧들이 있다면(결정 블록 88, "예" 구간), 전력 분배기 회로(10)는 남은 크레딧들의 분배를 시도하도록 구성될 수 있다. D2D 공유가 활성화되면(예를 들어, 시스템은 다중-다이 시스템이고 일부 경우에 D2D 공유는 프로그래밍 가능한 구성을 통해 선택적으로 활성화될 수 있음)(결정 블록 90, "예" 구간), 전력 분배기 회로(10)는 크레딧들을 다른 다이로 푸시(push)할 수 있다(블록 92). 일부 경우에 남은 크레딧들 전체보다 적게 공유될 수 있다. 예를 들어, 공유될 수 있는 크레딧 수에 프로그래밍 가능한 제한이 있거나, 남은 크레딧들의 일정 퍼센티지가 공유될 수 있다. 공유할 크레딧 수를 결정하기 위한 임의의 메커니즘이 사용될 수 있다.
존재하는 경우, 남은 크레딧들은 후속 할당에 사용하기 위해 다른 다이로부터 공유된 임의의 크레딧들과 함께 누적될 수 있다(블록 94). 누적될 수 있는 남은 크레딧 수는 제한될 수 있다(예를 들어, 프로그래밍 가능한 제한). 그러면 제한 초과하는 임의의 크레딧들은 "유출"될 것이다(예를 들어, 크레딧들의 할당 및 누적이 없기 때문에 손실됨). 크레딧들이 유출되면(결정 블록 96, "예" 구간), 전력 분배기 회로(10)는 잠재적으로 유용할 수 있으므로 크레딧들을 요청되지 않은 레이트 제어 회로들(20A 내지 20F)에 푸시할 수 있다(블록 98). 레이트 제어 회로들(20A 내지 20F)이 크레딧들을 할당할 수 없으면, 크레딧이 유출될 수 있다.
도 8은 주어진 레이트 제어 회로(20A 내지 20F)의 일 실시예의 동작의 단순화된 뷰를 예시하는 흐름도이다. 블록들은 이해의 용이성을 위해 특정 순서로 도시되어 있지만, 다른 순서들이 사용될 수도 있다. 블록들은 주어진 레이트 제어 회로(20A 내지 20F) 내의 조합 로직에 의해 병렬로 수행될 수 있다. 블록들, 블록들의 조합들 및/또는 전체적으로 흐름도는 복수의 클럭 사이클들에 걸쳐 파이프라이닝될 수 있다. 주어진 레이트 제어 회로(20A 내지 20F)는 도 8에 도시된 동작을 구현하도록 구성될 수 있다. 일 실시예에서, 각각의 레이트 제어 회로(20A 내지 20F)는 전력 분배기 회로(10)로부터의 각각의 할당된 전력 크레딧들에 기초하여 도 8에 도시된 동작을 병렬로 구현할 수 있다. 따라서, 도 8의 설명은 단순히 "레이트 제어 회로"를 참조할 것이다.
레이트 제어 회로는 전력 분배기 회로(10)로부터 수신된 할당된 전력 표시로부터 DPE 전력 추정치(적용 가능한 경우, 임의의 캐스케이드형 컴포넌트 회로들을 포함)를 감산하도록 구성될 수 있다(블록 100). 레이트 제어 회로는 결과를 임계값들과 비교하도록 구성될 수 있고, 감소0, 감소1 및 감소된 신호들을 생성하도록 구성될 수 있다(블록 102). 레이트 제어 회로는 전력 요청을 생성하기 위해 PI 제어를 DPE 전력 추정치 및 나머지에 적용하도록 구성될 수 있다(블록 104). 최저 요청이 전력 분배기 회로로 송신된 가장 최근 시간으로부터 플로우 요청이 변한 경우(결정 블록 106, "예" 구간), 레이트 제어 회로는 최저 요청을 선택하고 최저 요청을 전력 분배기 회로(10)로 송신하도록 구성될 수 있다(블록 108). 최저 요청이 전송된 가장 최근 시간으로부터 최저 요청이 변하지 않았고(결정 블록 106, "아니오" 구간) 전력 요청이 전송된 가장 최근 시간으로부터 전력 요청이 변한 경우(결정 블록 110, "예" 구간), 레이트 제어 회로는 전력 요청을 선택하고 전력 요청을 전력 분배기 회로(10)에 송신하도록 구성될 수 있다(블록 112). 둘 모두 변하지 않은 경우(결정 블록들 106 및 110, "아니요" 구간), 레이트 제어 회로는 최저 요청과 전력 요청 중 가장 최근에 송신된 것을 선택할 수 있고 선택된 요청을 전력 분배기 회로(10)에 송신할 수 있다(블록 114). 블록들(106, 108, 110, 112, 및 114)에 의해 예시된 동작은 공유된 전력 요청/최저 요청 인터페이스에 대해 구현될 수 있다. 전력 요청 및 최저 요청에 대한 별도의 버스들을 갖는 실시예들은 블록들(106, 108, 110, 112, 및 114)의 동작을 제거할 수 있다.
도 9는 메모리(122) 및 전력 관리 유닛(PMU: power management unit)(124)에 커플링된 시스템 온 칩(SOC)(120)을 포함하는 시스템의 일 실시예의 블록도이다. PMU(124)는 SOC(120) 및 메모리(122)와 같은 시스템에 포함될 수 있는 다른 컴포넌트들에 전력을 공급하도록 구성될 수 있다. 예를 들어, PMU(124)는 SOC(120)에 전력을 공급하기 위해 하나 이상의 공급 전압들을 생성하도록 구성될 수 있으며, 도 9에 도시되지 않은 시스템의 다른 컴포넌트들에 대한 공급 전압들을 생성하도록 추가로 구성될 수 있다. 보다 구체적으로, PMU(124)는 SOC(120)의 다양한 독립적인 전압 도메인들을 공급하는 제2 레벨 전압 제어기들을 공급하는 하나 이상의 제1 레벨 전압 제어기들을 포함할 수 있다.
이름이 의미하듯이, SOC(120)의 컴포넌트들은 집적 회로 "칩"으로서 단일 반도체 기판 상에 집적될 수 있다. 예시된 실시예에서, SOC(120)의 컴포넌트들은 적어도 하나의 프로세서 클러스터(148), 복수의 그래픽 프로세싱 유닛들(GPU)(136), 주변 컴포넌트들(138)(보다 간략하게는 "주변 기기들")과 같은 하나 이상의 주변 컴포넌트들, 메모리 제어기(142), 전력 관리 회로(PMGR: power management circuit)(144), 및 통신 패브릭(147)을 포함한다. 컴포넌트들(148, 136, 138, 142, 및 144)은 모두 통신 패브릭(147)에 커플링될 수 있다. 메모리 제어기(142)는 사용 중에 메모리(122)에 커플링될 수 있다. 일부 실시예들에서, 대응하는 메모리에 커플링된 하나 초과의 메모리 제어기가 있을 수 있다. 이러한 실시예들에서 메모리 주소 공간은 임의의 원하는 방식으로 메모리 제어기들에 걸쳐 매핑될 수 있다. 예시된 실시예에서, 프로세서 클러스터(148)는 복수의 프로세서들(P)(150)을 포함할 수 있다. 프로세서(150)는 SOC(120)의 중앙 프로세싱 유닛들(CPU(들))을 형성할 수 있다. 프로세서 클러스터(148)는 프로세서 명령 세트의 서브세트에 대해 최적화될 수 있고 서브세트의 명령들을 실행하기 위해 프로세서들(150)에 의해 사용될 수 있는 하나 이상의 코프로세서들(예를 들어, 도 9의 코프로세서(152))을 추가로 포함할 수 있다. 예를 들어, 코프로세서(152)는 벡터 및 행렬 연산들을 수행하도록 최적화된 행렬 엔진일 수 있다.
이러한 실시예에서, 메모리 제어기(들)(142), 통신 패브릭(147), 주변 기기들(138), GPU(136) 및 프로세서 클러스터(148)는 모두 컴포넌트 회로들(12A 내지 12F)의 인스턴스들일 수 있다. 따라서, 도시된 바와 같이, 메모리 제어기(들)(142), 통신 패브릭(147), 주변 기기들(138), GPU들(136) 및 프로세서 클러스터(148)는 각각 DPE/PC 회로(14) 및 레이트 제어 회로(20)의 인스턴스들을 포함한다. 메모리 제어기(들)(142), 통신 패브릭(147), 주변 기기들(138), GPU들(136) 및 프로세서 클러스터(148)의 임의의 서브세트는 다른 실시예들에서 컴포넌트 회로들일 수 있다. PMGR(144)은 전력 분배기 회로(10)를 포함할 수 있고, D2D 인터페이스 회로(24)는 통신 패브릭(147)의 일부일 수 있다.
도 9의 다양한 컴포넌트 회로들은 상이한 유형들의 컴포넌트 회로들일 수 있으며, 따라서 구현되는 전력 관리 메커니즘들은 다양할 수 있다. 예를 들어, 프로세서 클러스터(148)의 DPE/PC(14)는 하나 이상의 프로세서들(150)을 비활성화하고/비활성화하거나 프로세서(150)의 하나 이상의 파이프라인들을 비활성화하는 것과 같은 메커니즘들을 채용할 수 있다. 대응하는 회로부가 각각의 사이클을 능동적으로 평가하지 않도록 파이프라인들에 버블들을 삽입하여 명령 이슈 레이트들이 감소될 수 있다. 하나 이상의 전력 관리 메커니즘들의 임의의 세트가 사용될 수 있다. 유사하게, GPU들(136)은 활성 파이프라인들의 수를 감소시키고, 명령 이슈 레이트들을 제한하고/제한하거나 클럭 조작(클럭 디더링, 클럭 분배 등)과 같은 임의의 다른 전력 관리 메커니즘들을 구현할 수 있다.
PMGR(144)은 외부 PMU(124)로부터 요청된 공급 전압 크기들을 제어하도록 구성될 수 있다. 다양한 독립적인 전력 도메인에 대해, SOC(120)에 대해 PMU(124)에 의해 생성된 복수의 공급 전압들이 있을 수 있다. PMGR(144)은 직접적인 소프트웨어 제어 하에 있을 수 있고/있거나(예를 들어, 소프트웨어는 컴포넌트들의 전원 켜기 및/또는 전원 끄기를 직접 요청할 수 있음) SOC(120)를 모니터링하고 다양한 컴포넌트들에 전원이 켜지거나 전원이 꺼질 때를 결정하도록 구성될 수 있다. 컴포넌트 내의 다양한 전력 상태들(예를 들어, 프로세서(150)의 전력 상태)뿐만 아니라 전력 상태 변화의 순서, 상이한 요청 전압 및 주파수 등도 PMGR(144)을 통해 제어될 수 있다.
위에서 언급한 바와 같이, 프로세서 클러스터(148)는 SOC(120)의 CPU 역할을 할 수 있는 하나 이상의 프로세서들(150)을 포함할 수 있다. 시스템의 CPU는 운영 체제와 같은 시스템의 메인 제어 소프트웨어를 실행하는 프로세서(들)를 포함한다. 일반적으로, 사용 중에 CPU에 의해 실행되는 소프트웨어는 시스템의 원하는 기능을 실현하기 위해 시스템의 다른 컴포넌트들을 제어할 수 있다. 프로세서들은 또한 애플리케이션 프로그램들과 같은 다른 소프트웨어를 실행할 수 있다. 애플리케이션 프로그램들은 사용자 기능을 제공할 수 있으며, 하위-레벨 디바이스 제어, 스케줄링, 메모리 관리 등을 위해 운영 체제에 의존할 수 있다. 따라서, 프로세서들은 또한 애플리케이션 프로세서들로도 칭할 수 있다.
일반적으로, 프로세서는 프로세서에 의해 구현되는 명령 세트 아키텍처에 정의된 명령들을 실행하도록 구성된 임의의 회로부 및/또는 마이크로코드를 포함할 수 있다. 프로세서들은 시스템 온 칩(SOC(120)) 또는 다른 집적 레벨들로서 다른 컴포넌트들과 함께 집적 회로 상에 구현된 프로세서 코어들을 포함할 수 있다. 프로세서들은 개별 마이크로프로세서들, 프로세서 코어들 및/또는 다중칩 모듈 구현에 집적된 마이크로프로세서들, 복수의 집적 회로들로서 구현된 프로세서들 등을 추가로 포함할 수 있다.
메모리 제어기(142)는 일반적으로 SOC(120)의 다른 컴포넌트들로부터 메모리 동작들을 수신하고 메모리 동작들을 완료하기 위해 메모리(122)에 액세스하기 위한 회로부를 포함할 수 있다. 메모리 제어기(142)는 임의의 유형의 메모리(122)에 액세스하도록 구성될 수 있다. 예를 들어, 메모리(122)는 정적 랜덤-액세스 메모리(SRAM: static random-access memory), 더블 데이터 레이트(DDR, DDR2, DDR3, DDR4 등) DRAM을 포함하는 동기식 DRAM(SDRAM: Synchronous DRAM)과 같은 동적 RAM(DRAM: dynamic RAM)일 수 있다. DDR DRAM의 저전력/모바일 버전들이 지원될 수 있다(예를 들어, LPDDR, mDDR 등). 메모리 제어기(142)는 동작들을 정렬(및 잠재적으로 재정렬)하고 동작들을 메모리(122)에 제시하기 위한 메모리 동작들을 위한 큐(queue)들을 포함할 수 있다. 메모리 제어기(142)는 메모리에 쓰기를 기다리는 쓰기 데이터 및 메모리 동작의 소스로의 복귀를 기다리는 판독 데이터를 저장하기 위한 데이터 버퍼들을 추가로 포함할 수 있다. 일부 실시예들에서, 메모리 제어기(142)는 최근에 액세스된 메모리 데이터를 저장하기 위한 메모리 캐시를 포함할 수 있다. 예를 들어, SOC 구현들에서, 메모리 캐시는 곧 다시 액세스될 것으로 예상되는 경우 메모리(122)로부터의 데이터 재액세스를 회피함으로써 SOC의 전력 소비를 감소시킬 수 있다. 일부 경우들에서, 메모리 캐시는 특정 컴포넌트들에만 서빙하는 L2 캐시 또는 프로세서들의 캐시들과 같은 개인 캐시와 달리 시스템 캐시라고 칭할 수도 있다. 추가적으로, 일부 실시예들에서, 시스템 캐시는 메모리 제어기(142) 내에 위치될 필요가 없다.
주변 기기들(138)은 SOC(120)에 추가 하드웨어 기능의 임의의 세트일 수 있다. 예를 들어, 주변 기기들(138)은 카메라 또는 다른 이미지 센서로부터의 이미지 캡처 데이터를 프로세싱하도록 구성된 이미지 신호 프로세서, 비디오 인코더/디코더들, 스케일러들, 회전기들, 블렌더들, 디스플레이 제어기 등과 같은 비디오 주변 기기들을 포함할 수 있다. 주변 기기들은 마이크로폰들, 스피커들, 마이크로폰들 및 스피커들에 대한 인터페이스들, 오디오 프로세서들, 디지털 신호 프로세서들, 믹서들 등과 같은 오디오 주변 기기들을 포함할 수 있다. 주변 기기들은 범용 직렬 버스(USB: Universal Serial Bus), PCI 익스프레스(PCIe: PCI Express)를 포함하는 주변 컴포넌트 상호 연결(PCI: peripheral component interconnect), 직렬 및 병렬 포트들 등과 같은 인터페이스들을 포함하는 SOC(120) 외부의 다양한 인터페이스들에 대한 인터페이스 제어기들을 포함할 수 있다. 외부 디바이스에 대한 상호 연결은 SOC(120) 외부로 확장되는 도 9에서 점선에 의해 예시된다. 주변 기기들은 미디어 액세스 제어기(MAC: media access controller)들과 같은 네트워킹 주변 기기들을 포함할 수 있다. 하드웨어의 임의의 세트가 포함될 수 있다.
통신 패브릭(147)은 SOC(120)의 컴포넌트들 사이에서 통신하기 위한 임의의 통신 상호 연결 및 프로토콜일 수 있다. 통신 패브릭(147)은 공유된 버스 구성들, 크로스 바(cross bar) 구성들 및 브릿지들을 갖는 계층적 버스들을 포함하는 버스-기반일 수 있다. 통신 패브릭(147)은 또한 패킷-기반일 수 있으며, 브릿지들, 크로스 바, 점 대 점(point-to-point) 또는 다른 상호 연결들로 계층적일 수 있다.
SOC(120)의 컴포넌트들의 수(그리고 각각의 프로세서 클러스터(148)의 프로세서들(150)과 같이 도 9에 도시된 것에 대한 하위 컴포넌트들의 수)는 실시예마다 다를 수 있음에 유의한다. 추가적으로, 하나의 프로세서 클러스터(148)의 프로세서들(150)의 수는 복수의 프로세서 클러스터들이 포함될 때 다른 프로세서 클러스터(148)의 프로세서들(150)의 수와 다를 수 있다. 도 9에 도시된 수보다 더 많거나 더 적은 각각의 컴포넌트/하위 컴포넌트가 있을 수 있다.
위의 내용에 따르면, 집적 회로의 일 실시예는 전력 분배기 회로를 포함하는 전력 관리자 회로; 복수의 컴포넌트 회로들; 및 하나 이상의 프로세서 클러스터들을 포함할 수 있다. 주어진 프로세서 클러스터는 복수의 프로세서들, 복수의 프로세서들에 커플링되고 복수의 프로세서들에서 소비되는 전력을 추정하도록 구성된 디지털 전력 추정(DPE) 회로 및 복수의 프로세서들에 커플링된 레이트 제어 회로를 포함할 수 있다. 전력 분배기 회로는 집적 회로에 대한 전력 예산으로부터 복수의 컴포넌트 회로들 및 하나 이상의 프로세서 클러스터들에 전력을 할당하도록 구성될 수 있다. 전력 분배기 회로는 주어진 프로세서 클러스터에 대해 할당된 전력의 표시를 레이트 제어 회로에 전달하도록 구성될 수 있다. 레이트 제어 회로는 할당된 전력의 표시에 기초하고 DPE 회로로부터 추정된 전력 소비에 기초하여 대응하는 컴포넌트 회로들의 전력 소비를 관리하도록 구성될 수 있다. 주어진 프로세서 클러스터는 감소된 전력 소비를 요청하는 하나 이상의 입력들에 기초하여 복수의 프로세서들에 의한 전력 소비를 제한하도록 구성된 전력 제어 회로를 추가로 포함할 수 있다. 레이트 제어 회로는 하나 이상의 입력들을 사용하여 전력 소비를 관리하도록 구성될 수 있다.
도 10은 도시된 복수의 SOC들(120A 내지 120D)을 포함하는 시스템의 일 실시예의 블록도이다. 각각의 SOC(120A 내지 120D)는 전력 분배기 회로(10) 및 D2D 인터페이스 회로(24)를 포함한다. SOC들(120A 및 120B)은 제1 레벨 전압 레귤레이터(VR: voltage regulator)(160)(제2 레벨 전압 레귤레이터들을 통해, 도 10에 미도시)에 의해 공급되고, SOC들(120C 및 120D)은 제1 레벨 전압 레귤레이터(162)를 통해(제2 레벨 전압 레귤레이터들을 통해, 도 10에 미도시) 공급된다. SOC들(120A 및 120B)이 동일한 제1 레벨 전압 레귤레이터(160)를 공유하기 때문에, 전력 분배기 회로들(10)은 크레딧들을 공유하고 여전히 제1 레벨 전압 레귤레이터(160)의 용량을 보호할 수 있다. 마찬가지로, SOC들(120C 및 120D)은 동일한 제1 레벨 전압 레귤레이터를 공유하고, 전력 분배기 회로들(10)은 크레딧들을 공유하고 여전히 제1 레벨 전압 레귤레이터(162)의 용량을 보호할 수 있다. 가능한 공유가 도 10의 점선들(164 및 166)을 통해 예시되지만, 위에서 논의된 바와 같이, 통신은 실제로 D2D 인터페이스 회로들(24)을 통해 이루어질 수 있다. SOC들(120A 및 120B)은 또한 D2D 인터페이스들을 통해 SOC들(120C 및 120D)과 통신할 수 있지만, 일 실시예에서 전력 크레딧들을 공유하지 않을 수 있다. 2개의 SOC들(120A 및 120B 또는 120C 및 120D)이 공유 크레딧들로서 도시되어 있지만, 다른 실시예들에서 2개 초과의 SOC들이 크레딧들을 공유할 수 있다는 점에 유의한다. 예를 들어, 2개 초과의 SOC들이 동일한 제1 레벨 전압 레귤레이터를 공유하는 경우, 해당 SOC들은 크레딧들을 공유할 수 있다.
따라서, 일 실시예에서, 시스템은 각각의 반도체 기판들(예를 들어, SOC들) 상에 구현된 복수의 집적 회로들을 포함할 수 있다. 복수의 집적 회로들은 칩-간 상호 연결을 통해 커플링될 수 있다. 복수의 집적 회로들 중 각각의 집적 회로는 복수의 컴포넌트 회로들을 포함하며, 여기서 복수의 컴포넌트 회로들의 각각의 컴포넌트 회로들은 각각의 레이트 제어 회로들을 포함한다. 각각의 집적 회로는 복수의 컴포넌트 회로들에 커플링된 전력 분배기 회로를 추가로 포함할 수 있다. 전력 분배기 회로는 각각의 집적 회로에 대한 전력 예산에 기초하여 복수의 컴포넌트 회로들에 전력을 할당하도록 구성될 수 있다. 각각의 레이트 제어 회로들은 각각의 전력 요청들 및 각각의 최저 요청들을 생성하도록 구성될 수 있으며, 여기서 각각의 최저 요청들은 대응하는 컴포넌트 회로들이 소비할 전력의 최소량들을 나타낸다. 전력 분배기 회로는 복수의 컴포넌트 회로들이 각각의 최저 요청들과 적어도 동일한 전력의 할당을 수신하는 것을 보장하고 전력 분배 정책 및 각각의 전력 요청들에 기초하여 남은 전력 예산을 할당하도록 구성될 수 있다. 전력 분배기 회로는 칩-간 상호 연결을 통해 복수의 집적 회로들 중 다른 집적 회로의 전력 분배기 회로에 남은 전력 예산의 할당되지 않은 부분의 표시를 전송하도록 구성될 수 있다. 일 실시예에서, 각각의 집적 회로의 전력 분배기 회로는 복수의 집적 회로들 중 다른 집적 회로의 전력 분배기 회로로부터 남은 전력 예산의 할당되지 않은 부분의 제2 표시를 수신하도록 구성되고, 여기서 전력 분배기 회로는 후속 전력 할당에 할당되지 않은 부분을 포함하도록 구성될 수 있다. 일 실시예에서, 시스템은 복수의 전압 레귤레이터들을 포함할 수 있으며, 여기서 복수의 전압 레귤레이터들 중 주어진 전압 레귤레이터는 복수의 집적 회로들의 서브세트에 전력을 공급하도록 구성된다. 서브세트의 각각의 집적 회로들의 전력 분배기 회로들은 서브세트 중 할당되지 않은 부분의 표시들을 전송하도록 구성될 수 있다.
이제 도 11을 참조하면, 방법의 일 실시예를 예시하는 흐름도가 도시된다. 일 실시예에서, 본 방법은 전력 분배기 회로에 의해 복수의 컴포넌트 회로들에 전력을 할당하는 단계(블록 170)를 포함할 수 있다. 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로는 복수의 독립적인 전력 도메인들 중 하나에 포함되고, 복수의 컴포넌트 회로들은 각각의 레이트 제어 회로들을 포함한다. 본 방법은 전력 분배기 회로로부터 각각의 레이트 제어 회로들로 할당된 전력의 각각의 표시들을 전달하는 단계(블록 172)를 추가로 포함할 수 있다. 본 방법은 각각의 레이트 제어 회로들에 제공되는 할당된 전력의 각각의 표시에 기초하여 각각의 레이트 제어 회로들에 의해 복수의 컴포넌트 회로들의 전력 소비를 관리하는 단계(블록 174)를 또한 추가로 포함할 수 있다. 일 실시예에서, 주어진 컴포넌트 회로는 감소된 전력 소비를 요청하는 하나 이상의 입력들에 기초하여 주어진 컴포넌트 회로 내의 하나 이상의 회로들에 의한 전력 소비를 제한하도록 구성된 전력 제어 회로를 포함할 수 있다. 복수의 컴포넌트 회로들에서 전력 소비를 관리하는 단계는 각각의 레이트 제어 회로에 의해 하나 이상의 입력들을 사용하는 단계를 포함할 수 있다. 일 실시예에서, 하나 이상의 입력들을 사용하는 단계는 하나 이상의 입력들 중 제1 입력을 사용하여 감소된 전력 소비의 제1 레벨을 요청하는 단계; 및 하나 이상의 입력들 중 제2 입력을 사용하여 감소된 전력 소비의 제2 레벨을 요청하는 단계를 포함할 수 있으며, 여기서 제2 레벨은 제1 레벨보다 더욱 감소된다. 일 실시예에서, 감소된 전력 소비의 제1 레벨을 요청하는 단계는 제1 임계값 아래로 떨어지는 할당된 전력의 남은 양에 기초할 수 있다. 일 실시예에서, 감소된 전력 소비의 제2 레벨을 요청하는 단계는 제2 임계값 아래로 떨어지는 할당된 전력의 남은 양에 기초할 수 있다.
도 12는 방법의 다른 실시예를 예시하는 흐름도이다. 일 실시예에서, 본 방법은 시스템의 복수의 컴포넌트 회로들의 각각의 컴포넌트 회로들의 각각의 레이트 제어 회로들에 의해 시스템의 전력 분배기 회로에 대한 각각의 전력 요청들 및 각각의 최저 요청들을 생성하는 단계(블록 180)를 포함할 수 있다. 각각의 최저 요청들은 대응하는 컴포넌트 회로들에 의해 소비가능한 전력의 최소량들을 나타낼 수 있다. 본 방법은 전력 분배기 회로에 의해 복수의 컴포넌트 회로들에 전력을 할당하는 단계(블록 182)를 추가로 포함할 수 있다. 할당하는 단계는 복수의 컴포넌트 회로들이 각각의 최저 요청 및 각각의 전력 요청의 최소값과 적어도 동일한 전력의 할당을 수신하는 것을 보장하는 단계; 및 전력 분배 정책 및 각각의 전력 요청들에 기초하여 남은 전력 예산을 할당하는 단계를 포함할 수 있다. 일 실시예에서, 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로는 주어진 컴포넌트 회로에서 감소된 전력 소비를 야기하도록 구성된 전력 제어 회로를 포함할 수 있고, 주어진 컴포넌트 회로에 대한 각각의 최저 요청은 전력 제어 회로가 야기할 수 있는 감소된 전력 소비의 최대량에 기초할 수 있다. 일 실시예에서, 주어진 컴포넌트 회로는 사용 중에 비활성 트랜지스터들에서 누설 전류를 경험할 수 있으며, 주어진 컴포넌트 회로에 대한 각각의 최저 요청은 누설 전류를 통해 소비되는 누설 전력에 추가로 기초할 수 있다. 일 실시예에서, 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로의 전력 분배기 회로와 각각의 레이트 제어 회로 사이의 물리적 상호 연결은 각각의 전력 요청 및 각각의 최저 요청을 전송하기 위한 공유된 버스를 포함할 수 있으며, 본 방법은 공유된 버스 상에서 전송하기 위해 각각의 전력 요청과 각자의 최저 요청 중 하나를 선택하는 단계를 추가로 포함할 수 있다. 일 실시예에서, 공유된 버스 상에서 전송하기 위해 각각의 전력 요청과 각각의 최저 요청 중 하나를 선택하는 단계는 각각의 최저 요청의 가장 최근 전송 이후 각각의 최저 요청의 변화에 기초하여 각각의 최저 요청을 선택하는 단계; 각각의 전력 요청의 가장 최근 전송 이후 각각의 전력 요청의 변화에 기초하여 각각의 전력 요청을 선택하는 단계; 및 각각의 전력 요청의 가장 최근 전송 이후 각각의 전력 요청에 변화가 없고, 각각의 전력 요청의 가장 최근 전송 이후의 각각의 최저 요청의 변화가 없음에 기초하여, 각각의 최저 요청 및 각각의 전력 요청 중 최소로 최근에 전송된 것을 선택하는 단계를 포함할 수 있다.
컴퓨터 시스템
다음으로 도 13을 참조하면, 시스템(700)의 일 실시예의 블록도가 도시되어 있다. 예시된 실시예에서, 시스템(700)은 하나 이상의 주변 기기들(704) 및 외부 메모리(702)에 커플링된 시스템 온 칩(SOC)(706)의 적어도 하나의 인스턴스를 포함한다. 공급 전압을 SOC(706)에 공급할 뿐만 아니라 하나 이상의 공급 전압들을 메모리(702) 및/또는 주변 기기들(704)에 공급하는 전력 공급 유닛(PMU)(708)이 제공된다. 일부 실시예들에서, SOC의 하나 초과의 인스턴스가 포함될 수 있다(그리고 하나 초과의 메모리(702)도 포함될 수 있음). 일 실시예에서, 메모리(702)는 도 9에 예시된 메모리(122)를 포함할 수 있다. SOC(706)는 일 실시예에서 도 9에 예시된 SOC(120)의 인스턴스일 수 있다. PMU(708)는 일 실시예에서 도 9에 도시된 PMU(124)를 포함할 수 있고, 일 실시예에서 도 10에 도시된 전압 레귤레이터들(160 및 162)을 포함할 수 있다.
주변 기기들(704)은 시스템(700)의 유형에 따라 임의의 원하는 회로부를 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(704)은 모바일 디바이스(예를 들어, PDA(personal digital assistant), 스마트폰 등)일 수 있고 주변 기기들(704)은 Wi-Fi, 블루투스, 셀룰러, 전역 포지셔닝 시스템 등과 같은 다양한 유형들의 무선 통신을 위한 디바이스들을 포함할 수 있다. 주변 기기들(704)은 또한 RAM 저장소, 솔리드 스테이트 저장소 또는 디스크 저장소를 포함하는 추가 저장소를 포함할 수 있다. 주변 기기들(704)은 터치 디스플레이 스크린들 또는 멀티터치 디스플레이 스크린들을 포함하는 디스플레이 스크린, 키보드 또는 다른 입력 디바이스들, 마이크로폰들, 스피커들 등과 같은 사용자 인터페이스 디바이스들을 포함할 수 있다. 다른 실시예들에서, 시스템(700)은 임의의 유형의 컴퓨팅 시스템(예를 들어, 데스크탑 퍼스널 컴퓨터, 랩탑, 워크스테이션, 넷탑 등)일 수 있다.
외부 메모리(702)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들어, 외부 메모리(702)는 SRAM, 동기식 DRAM(SDRAM)과 같은 동적 RAM(DRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM, RAMBUS DRAM, DDR DRAM의 저전력 버전들(예를 들어, LPDDR, mDDR 등) 등일 수 있다. 외부 메모리(702)는 단일 인라인 메모리 모듈(SIMM: single inline memory module)들, 듀얼 인라인 메모리 모듈(DIMM: dual inline memory module)들 등과 같이 메모리 디바이스들이 장착되는 하나 이상의 메모리 모듈들을 포함할 수 있다. 대안적으로, 외부 메모리(702)는 칩-온-칩 또는 패키지-온-패키지 구현에서 SOC(706) 상에 장착되는 하나 이상의 메모리 디바이스들을 포함할 수 있다.
예시된 바와 같이, 시스템(700)은 광범위한 영역들에 적용되는 것으로 도시된다. 예를 들어, 시스템(700)은 데스크탑 컴퓨터(710), 랩탑 컴퓨터(720), 태블릿 컴퓨터(730), 셀룰러 또는 모바일 폰(740) 또는 텔레비전(750)(또는 텔레비전에 커플링된 셋-탑 박스)의 칩들, 회로부, 컴포넌트들 등의 일부로 이용될 수 있다. 또한 스마트워치 및 건강 모니터링 디바이스(760)가 예시되어 있다. 일부 실시예들에서, 스마트워치는 다양한 범용 컴퓨팅 관련 기능들을 포함할 수 있다. 예를 들어, 스마트워치는 이메일, 셀폰 서비스, 사용자 캘린더 등에 대한 액세스를 제공할 수 있다. 다양한 실시예들에서, 건강 모니터링 디바이스는 전용 의료 디바이스일 수 있거나 그렇지 않으면 전용 건강 관련 기능을 포함할 수 있다. 예를 들어, 건강 모니터링 디바이스는 사용자의 바이탈(vital) 징후들을 모니터링하고, 역학적 사회적 거리두기를 목적으로 다른 사용자들에 대한 사용자의 근접성을 추적하고, 접촉 추적을 수행하고, 건강 위기의 이벤트에서 응급 서비스에 통신을 제공하는 등을 수행할 수 있다. 다양한 실시예들에서, 위에 언급한 스마트워치는 건강 모니터링 관련 기능들의 일부 또는 임의의 것을 포함하거나 포함하지 않을 수 있다. 목 주위에 착용하는 디바이스들, 인체에 이식 가능한 디바이스들, 증강 및/또는 가상 현실 경험을 제공하도록 설계된 안경 등과 같은 다른 웨어러블 디바이스들도 고려된다.
시스템(700)은 클라우드-기반 서비스(들)(770)의 일부로서 추가로 사용될 수 있다. 예를 들어, 이전에 언급된 디바이스들 및/또는 다른 디바이스들은 클라우드의 컴퓨팅 자원들(즉, 원격으로 위치된 하드웨어 및/또는 소프트웨어 자원들)에 액세스할 수 있다. 또한 추가로, 시스템(700)은 이전에 언급된 것 이외의 가정의 하나 이상의 디바이스들에서 이용될 수 있다. 예를 들어, 집 안의 기기들은 주의가 필요한 조건들을 모니터링하고 검출할 수 있다. 예를 들어, 집 안의 다양한 디바이스들(예를 들어, 냉장고, 냉각 시스템 등)은 디바이스의 상태를 모니터링하고 특정 이벤트가 검출된 경우 집 소유자(또는 예를 들어, 수리 시설)에게 경고를 제공할 수 있다. 대안적으로, 온도 조절기는 집의 온도를 모니터링할 수 있고 집 소유자의 다양한 조건들에 대한 응답들의 이력에 기초하여 난방/냉방 시스템에 대한 조정들을 자동화할 수 있다. 또한, 도 13에는 다양한 운송 모드들에 대한 시스템(700)의 적용이 예시되어 있다. 예를 들어, 시스템(700)은 항공기, 기차들, 버스들, 임대 자동차들, 개인 자동차들, 개인 보트들에서 크루즈 여객선들까지의 수상 선박들, 스쿠터들(임대 또는 소유) 등의 제어 및/또는 엔터테인먼트 시스템들에 사용될 수 있다. 다양한 경우들에서, 시스템(700)은 자동화된 안내(예를 들어, 자율 주행 차량들), 일반 시스템 제어 등을 제공하는 데 사용될 수 있다. 이러한 임의의 많은 다른 실시예들이 가능하고 고려된다. 도 13에 예시된 디바이스들 및 애플리케이션들은 단지 예시적일 뿐 제한하려는 의도가 아니라는 점에 유의한다. 다른 디바이스들도 가능하며 고려된다.
컴퓨터로 판독 가능 저장 매체
이제 도 14를 참조하면, 컴퓨터 판독 가능 저장 매체(800)의 일 실시예의 블록도가 도시된다. 일반적으로 말해서, 컴퓨터 액세스 가능 저장 매체는 컴퓨터에 명령들 및/또는 데이터를 제공하기 위해 사용 중에 컴퓨터에 의해 액세스 가능한 임의의 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 액세스 가능 저장 매체는 자기 또는 광학 매체, 예를 들어, 디스크(고정식 또는 이동식), 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW 또는 블루-레이와 같은 저장 매체를 포함할 수 있다. 저장 매체는 RAM(예를 들어, 동기식 동적 RAM(SDRAM: synchronous dynamic RAM), 램버스 RDRAM(RDRAM: Rambus DRAM), 정적 RAM(SRAM: static RAM) 등), ROM 또는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리 매체를 추가로 포함할 수 있다. 저장 매체는 저장 매체가 명령들/데이터를 제공하는 컴퓨터 내에 물리적으로 포함될 수 있다. 대안적으로, 저장 매체는 컴퓨터에 연결될 수 있다. 예를 들어, 저장 매체는 네트워크 또는 네트워크 부착 저장소와 같은 무선 링크를 통해 컴퓨터에 연결될 수 있다. 저장 매체는 범용 직렬 버스(USB: Universal Serial Bus)와 같은 주변 인터페이스를 통해 연결될 수 있다. 일반적으로, 컴퓨터 액세스 가능 저장 매체(800)는 비일시적 방식으로 데이터를 저장할 수 있으며, 여기서 이러한 문맥에서 비일시적이란 명령들/데이터를 신호 상에서 전송하지 않는 것을 지칭할 수 있다. 예를 들어, 비일시적 저장소는 휘발성이거나(그리고 전력 차단에 응답하여 저장된 명령들/데이터를 잃을 수 있음) 비휘발성일 수 있다.
도 14의 컴퓨터 액세스 가능 저장 매체(800)는 SOC(120)를 나타내는 데이터베이스(804)를 저장할 수 있다. 일반적으로, 데이터베이스(804)는 프로그램에 의해 판독될 수 있고 직접 또는 간접적으로 사용되어 SOC(120)를 포함하는 하드웨어를 제조할 수 있는 데이터베이스일 수 있다. 예를 들어, 데이터베이스는 Verilog 또는 VHDL과 같은 하이-레벨 설계 언어(HDL: high-level design language)의 하드웨어 기능의 거동-레벨 설명 또는 레지스터-전송 레벨(RTL: register-transfer level) 설명일 수 있다. 설명은 합성 라이브러리로부터의 게이트들의 목록을 포함하는 넷리스트를 생성하기 위해 설명을 합성할 수 있는 합성 도구에 의해 판독될 수 있다. 넷리스트는 SOC(120)를 포함하는 하드웨어의 기능을 또한 나타내는 게이트들의 세트를 포함한다. 그 후 넷리스트가 배치되고 라우팅되어 마스크들에 적용될 기하학적 형상들을 설명하는 데이터 세트를 생성할 수 있다. 그 후 마스크들은 다양한 반도체 제조 단계들에서 사용되어 SOC(120)에 대응하는 반도체 회로 또는 회로들을 생성할 수 있다. 대안적으로, 컴퓨터 액세스 가능 저장 매체(800) 상의 데이터베이스(804)는 원하는 대로 넷리스트(합성 라이브러리가 있거나 없음) 또는 데이터 세트일 수 있다.
컴퓨터 액세스 가능 저장 매체(800)가 SOC(10)의 표현을 저장하는 반면, 다른 실시예들은 원하는 대로 도 9에 도시된 컴포넌트들의 임의의 서브세트를 포함하여 SOC(120)의 임의의 부분의 표현을 전달할 수 있다. 데이터베이스(804)는 위의 것 중 임의의 부분을 나타낼 수 있다.
***
본 개시는 "실시예" 또는 "실시예들"의 그룹들(예를 들어, "일부 실시예들" 또는 "다양한 실시예들")에 대한 참조들을 포함한다. 실시예들은 개시된 개념들의 상이한 구현들 또는 인스턴스들이다. "실시예", "일 실시예", "특정 실시예" 등에 대한 지칭은 반드시 동일한 실시예를 지칭하는 것은 아니다. 구체적으로 개시된 것뿐만 아니라 본 개시의 사상 또는 범위 내에 속하는 수정들 또는 대안들을 포함하여 다수의 가능한 실시예들이 고려된다.
본 개시는 개시된 실시예들로부터 발생할 수 있는 잠재적인 이점들을 논의할 수 있다. 이러한 실시예들의 모든 구현들이 반드시 잠재적인 이점들 중 임의의 것 또는 전부를 나타내는 것은 아니다. 특정 구현에 대한 이점이 실현되는지 여부는 많은 요인들에 따르며, 그 중 일부는 본 개시의 범위를 벗어난다. 실제로, 청구항들의 범위에 속하는 구현이 개시된 이점들 중 일부 또는 전부를 나타내지 못하는 데에는 많은 이유들이 있다. 예를 들어, 특정 구현은 개시된 실시예들 중 하나와 관련하여 개시된 이점들 중 하나 이상을 무효화하거나 감소시키는 본 개시의 범위 밖의 다른 회로부를 포함할 수 있다. 추가로, 특정 구현의 차선책의 설계 실행(예를 들어, 구현 기술들 또는 도구들)이 또한 개시된 이점들을 무효화하거나 감소시킬 수 있다. 숙련된 구현을 가정하더라도, 이점들의 실현은 여전히 구현이 배치되는 환경적 상황들과 같은 다른 요인들에 따를 수 있다. 예를 들어, 특정 구현에 공급된 입력들은 본 개시에서 다루어지는 하나 이상의 문제들이 특정 경우에 발생하는 것을 방지할 수 있으며, 그 결과 해당 해결책의 이점이 실현되지 않을 수 있다. 본 개시 외부의 가능한 요인들의 존재를 감안할 때, 본원에 설명된 임의의 잠재적 이점들이 침해를 입증하기 위해 충족되어야 하는 청구 제한들로 해석되어서는 안 된다는 것이 명백히 의도되었다. 오히려, 이러한 잠재적 이점들의 식별은 본 개시의 이점을 갖는 설계자들이 이용할 수 있는 개선 유형(들)을 예시하기 위해 의도된다. 이러한 이점들이 허용적으로 설명되는 것(예를 들어, 특정 이점이 "발생할 수 있다"고 언급)은 이러한 이점들이 실제로 실현될 수 있는지 여부에 대한 의심을 전달하려는 것이 아니라, 오히려 이러한 이점들의 실현이 종종 추가 요인들에 달려 있다는 기술적 현실을 인식하려는 의도이다.
달리 언급되지 않는 한, 실시예들은 제한적이지 않다. 즉, 개시된 실시예들은 특정한 특징과 관련하여 단 하나의 예만이 설명되는 경우에도 본 개시에 기초하여 작성된 청구항들의 범위를 제한하려는 의도가 아니다. 개시된 실시예들은 제한적인 것이 아니라 예시적인 것으로 의도되었으며, 개시 내용에 반대되는 어떠한 진술들도 존재하지 않는다. 따라서, 본 출원은 개시된 실시예들뿐만 아니라 본 개시의 이점을 갖는 본 기술 분야의 통상의 기술자에게 명백한 이러한 대안들, 수정들 및 등가물들을 포괄하는 청구항들을 허용하도록 의도된다.
예를 들어, 본 출원의 특징들은 임의의 적절한 방식으로 조합될 수 있다. 따라서, 이러한 임의의 특징들의 조합에 대해 본 출원(또는 그에 대한 우선권을 주장하는 출원)의 진행 동안 새로운 청구항들이 형성될 수 있다. 특히, 첨부된 청구항들을 참조하면, 종속 청구항들의 특징들은 다른 독립항들에 종속하는 청구항들을 포함하여 적절한 경우 다른 종속 청구항들의 특징과 조합될 수 있다. 마찬가지로, 각각의 독립 청구항들의 특징들은 적절한 경우 조합될 수 있다.
따라서, 첨부된 종속 청구항들은 각각이 하나의 다른 청구항에 종속되도록 작성될 수 있지만, 추가적인 종속들도 고려된다. 본 개시와 일치하는 종속에서 특징들의 임의의 조합들이 고려되고 본 출원 또는 다른 출원에서 청구될 수 있다. 요컨대, 조합들은 첨부된 청구항들에 구체적으로 열거된 것으로 제한되지 않는다.
적절한 경우, 하나의 포맷이나 법정 유형(예를 들어, 장치)으로 작성된 청구항들은 다른 포맷이나 법정 유형(예를 들어, 방법)의 대응하는 청구항들을 지원하도록 의도되는 것으로 또한 고려된다.
***
본 개시는 법적 문서이기 때문에, 다양한 용어들과 문구들이 행정적, 사법적 해석의 대상이 될 수 있다. 본 개시에 기초하여 초안이 작성된 청구항들을 해석하는 방법을 결정하는 데 본 개시 내용 전반에 걸쳐 제공된 정의들뿐만 아니라 다음 문단들이 사용되어야 한다는 공고가 여기에 제공된다.
항목의 단수 형태(즉, "a", "an" 또는 "the"가 앞에 오는 명사 또는 명사구)에 대한 지칭들은 문맥상 명백하게 달리 지시하지 않는 한 "하나 이상"을 의미하는 것으로 의도된다. 따라서, 청구항에서 "항목"에 대한 지칭은 문맥을 수반하지 않고는 항목의 추가 인스턴스들을 배제하지 않다. "복수"의 항목들은 항목들 중 2개 이상의 세트를 지칭한다.
"할 수 있다(may)"라는 단어는 본원에서 의무적인 의미(즉, 해야 한다(must))가 아니라 허용적인 의미(즉, 할 가능성을 가짐, 할 수 있음)로 사용된다.
"포함하는(comprising)" 및 "포함하는(including)"이라는 용어와 그 형태들은 개방형이며 "포함하지만 이에 한정되지는 않는"을 의미한다.
옵션들의 목록과 관련하여 본 개시에서 "또는"이라는 용어가 사용되는 경우, 문맥상 달리 제공되지 않는 한 일반적으로 포괄적인 의미로 사용되는 것으로 이해될 것이다. 따라서 "x 또는 y"를 언급하는 것은 "x 또는 y, 또는 둘 모두"와 등가이므로, 1) x이지만 y는 아니고, 2) y이지만 x는 아니고, 3) x와 y 모두를 포괄한다. 반면, "x 또는 y 중 어느 하나지만 둘 모두는 아님"과 같은 문구는 "또는"이 배타적인 의미로 사용되고 있음을 분명히 한다.
"w, x, y 또는 z, 또는 이들의 임의의 조합" 또는 "...w, x, y 및 z 중 적어도 하나"에 대한 언급은 세트의 요소들의 전체 개수까지 단일 요소와 관련된 모든 가능성들을 포괄하려는 의도이다. 예를 들어, 세트 [w, x, y, z]가 주어지면, 이러한 표현들은 세트의 임의의 단일 요소(예를 들어, w이지만 x, y 또는 z는 아님), 임의의 2개의 요소들(예를 들어, w 및 x이지만 y 또는 z는 아님), 임의의 3개의 요소들(예를 들어, w, x 및 y이지만 z는 아님) 및 모든 4개 요소들을 포괄한다. 따라서, "...w, x, y 및 z 중 적어도 하나"라는 문구는 세트 [w, x, y, z]의 적어도 하나의 요소를 지칭하며, 이에 의해 이러한 요소들의 목록에서 가능한 모든 조합들을 포괄한다. 이러한 문구는 w의 적어도 하나의 인스턴스, x의 적어도 하나의 인스턴스, y의 적어도 하나의 인스턴스, 그리고 z의 적어도 하나의 인스턴스가 있는 것을 필요로 하는 것으로 해석되어서는 안 된다.
본 개시에서 다양한 "라벨(label)들"이 명사들 또는 명사구들 앞에 올 수 있다. 문맥상 달리 제공되지 않는 한, 특징부에 사용되는 상이한 라벨들(예를 들어, "제1 회로", "제2 회로", "특정 회로", "주어진 회로" 등)은 특징부의 상이한 인스턴스들을 지칭한다. 또한, 특징부에 적용될 때 "제1", "제2" 및 "제3"이라는 라벨들은 달리 명시하지 않는 한 임의의 유형의 순서(예를 들어, 공간적, 시간적, 논리적 등)를 의미하지 않는다.
"에 기초하여"라는 문구는 결정에 영향을 미치는 하나 이상의 요인들을 설명하는 데 사용된다. 이러한 용어는 추가 요인들이 결정에 영향을 미칠 수 있는 가능성을 배제하지 않다. 즉, 결정은 특정 요인들에만 기초할 수도 있거나, 특정 요인들뿐만 아니라 특정되지 않은 다른 요인들에도 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이러한 문구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 미치는 요인임을 특정한다. 이러한 문구는 A의 결정이 C와 같은 일부 다른 요인에 기초할 수도 있다는 것을 배제하지 않는다. 이러한 문구는 또한 A가 B에만 기초하여 결정되는 실시예를 포괄하도록 의도된다. 본원에 사용되는 바와 같이, "에 기초하여"라는 문구는 "에 적어도 부분적으로 기초하여"라는 문구와 동의어이다.
"에 응답하여" 및 "에 응답하는"이라는 문구는 효과를 촉발하는 하나 이상의 요인들을 설명한다. 이러한 문구는 추가 요인들이 특정된 요인들과 공동으로 또는 특정된 요인들과 독립적으로 영향을 미치거나 아니면 효과를 촉발할 수 있는 가능성을 배제하지 않는다. 즉, 효과는 해당 요인들에만 응답할 수 있거나, 특정 요인들뿐만 아니라 특정되지 않은 다른 요인들에도 응답할 수 있다. "B에 대한 응답으로 A를 수행한다"라는 문구를 고려한다. 이러한 문구는 B가 A의 성과를 촉발하거나 A에 대한 특정 결과를 촉발하는 요인임을 특정한다. 이러한 문구는 A를 수행하는 것이 또한 C와 같은 일부 다른 요인에 대한 응답일 수도 있다는 것을 배제하지 않는다. 이러한 문구는 또한 A를 수행하는 것이 B와 C에 공동으로 응답할 수 있다는 것을 배제하지 않는다. 이러한 문구는 또한 A가 B에만 응답하여 수행되는 실시예를 포괄하도록 의도된다. 본원에 사용되는 바와 같이, "에 응답하는"이라는 문구는 "에 적어도 부분적으로 응답하는"이라는 문구와 동의어이다. 마찬가지로, "에 응답하여"라는 문구는 "에 적어도 부분적으로는 응답하여"라는 문구와 동의어이다.
***
본 개시 내에서, ("유닛들", "회로들", 다른 컴포넌트 회로들 등으로 다양하게 지칭될 수 있는) 상이한 엔티티들이 하나 이상의 작업들 또는 동작들을 수행하도록 "구성되는" 것으로 설명되거나 청구될 수 있다. [하나 이상의 작업들을 수행]하도록 구성된 [엔티티]라는 공식은 본원에서 구조(즉, 물리적인 것)를 지칭하는 데 사용된다. 보다 구체적으로, 이러한 공식은 이러한 구조가 동작 중에 하나 이상의 작업들을 수행하도록 배열되는 것을 나타내는 데 사용된다. 구조가 현재 동작되고 있지 않더라도 구조는 일부 작업을 수행하도록 "구성"되었다고 말할 수 있다. 따라서, 일부 작업을 수행하도록 "구성된" 것으로 설명되거나 언급된 엔티티는 작업 등을 구현하기 위해 실행 가능한 프로그램 명령들을 저장하는 메모리 및 프로세서 유닛을 갖는 디바이스, 회로, 시스템과 같은 물리적인 것을 지칭한다. 이러한 문구는 본원에서 무형의 것을 지칭하는 데 사용되지 않는다.
일부 경우들에서, 다양한 유닛들/회로들/컴포넌트 회로들이 작업 또는 동작들의 세트를 수행하는 것으로 본원에 설명될 수 있다. 해당 엔티티들은 특별히 언급되지 않은 경우에도 해당 작업들/동작들을 수행하도록 "구성된" 것으로 이해된다.
"로 구성된"이라는 용어는 "로 구성 가능한"을 의미하도록 의도되지 않는다. 예를 들어, 프로그래밍되지 않은 FPGA는 특정 기능을 수행하도록 "구성된" 것으로 간주되지 않을 것이다. 그러나, 이러한 프로그래밍되지 않은 FPGA는 해당 기능을 수행하도록 "구성 가능"할 수 있다. 적절한 프로그래밍 후에, FPGA는 특정 기능을 수행하도록 "구성된" 것으로 말할 수 있다.
본 개시에 기초한 미국 특허 출원들의 목적들을 위해, 구조가 하나 이상의 작업들을 수행하도록 "구성된다"는 청구항에서의 언급은 명시적으로 해당 청구항 요소에 대해 35 U.S.C.§112(f)를 호출하지 않는 것으로 명시적으로 의도된다. 출원인이 본 개시에 기초하여 미국 특허 출원의 진행 동안 섹션 112(f)를 호출하기를 원하는 경우, [기능을 수행]"하기 위한 수단" 구성을 사용하여 청구항 요소들을 언급할 것이다.
본 개시에서는 상이한 "회로들"이 설명될 수 있다. 이러한 회로들 또는 "회로부(circuitry)"는 조합 로직, 클럭킹된(clocked) 저장 디바이스들(예를 들어, 플립-플롭들, 레지스터들, 래치들 등), 유한 상태 기계들, 메모리(예를 들어, 랜덤-액세스 메모리, 삽입된 동적 랜덤-액세스 메모리), 프로그래밍 가능 로직 어레이들 등과 같은 다양한 유형들의 회로 요소들을 포함하는 하드웨어를 구성한다. 회로부는 맞춤형으로 설계되거나, 표준 라이브러리들로부터 취해질 수 있다. 다양한 구현예들에서, 회로부는 적절하게 디지털 컴포넌트 회로들, 아날로그 컴포넌트 회로들, 또는 둘 모두의 조합을 포함할 수 있다. 특정 유형들의 회로들은 일반적으로 "유닛들"(예를 들어, 디코드 유닛, 산술 로직 유닛(ALU: arithmetic logic unit), 기능 유닛, 메모리 관리 유닛(MMU: memory management unit) 등)으로 지칭될 수 있다. 이러한 유닛들은 또한 회로들 또는 회로부를 지칭한다.
따라서, 도면들에 예시되고 본원에 설명된 개시된 회로들/유닛들/컴포넌트 회로들 및 다른 요소들은 선행 단락에 설명된 것과 같은 하드웨어 요소들을 포함한다. 많은 경우들에서, 특정 회로 내의 하드웨어 요소들의 내부 배열은 해당 회로의 기능을 설명함으로써 특정될 수 있다. 예를 들어, 특정 "디코드 유닛"은 "명령의 op코드를 프로세싱하고 해당 명령을 복수의 기능 유닛들 중 하나 이상으로 라우팅하는" 기능을 수행하는 것으로 설명될 수 있으며, 이는 디코드 유닛이 이러한 기능을 수행하도록 "구성되는" 것을 의미한다. 이러한 기능의 사양은 컴퓨터 기술 분야의 통상의 기술자들에게 회로에 대한 가능한 구조들의 세트를 암시하기에 충분하다.
다양한 실시예들에서, 이전 단락에서 논의된 바와 같이, 회로들, 유닛들 및 다른 요소들이 이들이 구현하도록 구성된 기능들 또는 동작들에 의해 정의된다. 이러한 회로들/유닛들/컴포넌트 회로들의 서로에 대한 배열과 이들이 상호 작용하는 방식은 마이크로아키텍처의 정의의 물리적 구현을 형성하기 위해 궁극적으로 집적 회로에서 제조되거나 FPGA에 프로그래밍되는 하드웨어의 마이크로아키텍처 정의를 형성한다. 따라서, 마이크로아키텍처 정의는 본 기술 분야의 통상의 기술자들에 의해 많은 물리적 구현들이 도출될 수 있는 구조로 인식되며, 이들 모두는 마이크로아키텍처 정의에 의해 설명되는 더 넓은 구조에 속한다. 즉, 본 개시에 따라 공급되는 마이크로아키텍처 정의를 제시받는 본 기술 분야의 통상의 기술자는 과도한 실험 없이 그리고 통상의 기술의 적용으로 Verilog 또는 VHDL과 같은 하드웨어 설명 언어(HDL: hardware description language)로 회로들/유닛들/컴포넌트 회로들의 설명을 코딩함으로써 구조를 구현할 수 있다. HDL 설명은 종종 기능적인 것으로 보일 수 있는 방식으로 표현된다. 그러나, 본 기술 분야의 통상의 기술자들에게 이러한 HDL 설명은 회로, 유닛 또는 컴포넌트 회로의 구조를 다음 레벨의 구현 상세 사항으로 변환하는 데 사용되는 방식이다. 이러한 HDL 설명은 거동 코드(통상적으로 합성 불가능), 레지스터 전달 언어(RTL: register transfer language) 코드(거동 코드와 달리 통상적으로 합성 가능) 또는 구조적 코드(예를 들어, 로직 게이트들을 특정하는 넷리스트 및 그 연결성)의 형태를 취할 수 있다. HDL 설명은 주어진 집적 회로 제조 기술을 위해 설계된 셀들의 라이브러리에 대해 이후에 합성될 수 있으며, 타이밍, 전력 및 다른 이유들로 수정되어 마스크들을 생성하고 궁극적으로 집적 회로를 생산하기 위해 파운드리로 전송되는 최종 설계 데이터베이스가 된다. 일부 하드웨어 회로들 또는 그 일부들은 또한 배선도(schematic) 편집기에서 맞춤-설계되어 합성된 회로부와 함께 집적 회로 설계에 캡처될 수 있다. 집적 회로들은 트랜지스터들 및 다른 회로 요소들(예를 들어, 커패시터들, 저항들, 인덕터들 등과 같은 수동 요소들)을 포함할 수 있고, 트랜지스터들과 회로 요소들 사이를 상호 연결할 수 있다. 일부 실시예는 하드웨어 회로를 구현하기 위해 서로 커플링된 복수의 집적 회로를 구현할 수 있고/있거나 일부 실시예에서는 개별 요소가 사용될 수 있다. 대안적으로, HDL 설계는 필드 프로그래밍 가능 게이트 어레이(FPGA: field programmable gate array)와 같은 프로그래밍 가능한 로직 어레이로 합성될 수 있으며 FPGA에서 구현될 수 있다. 회로의 그룹의 설계와 이러한 회로의 후속 로우-레벨 구현 간의 이러한 분리는 일반적으로 이러한 프로세스가 회로 구현 프로세스의 상이한 단계에서 수행되므로 회로가 무엇을 수행하도록 구성되는지에 대한 설명을 넘어 회로 또는 로직 설계자가 로우-레벨 구현에 대한 구조의 특정 세트를 특정하지 않는 시나리오로 귀결된다.
회로의 동일한 사양을 구현하기 위해 회로 요소들의 많은 상이한 로우-레벨 조합이 사용될 수 있다는 사실은 해당 회로에 대해 다수의 등가 구조를 초래한다. 언급한 바와 같이, 이러한 로우-레벨 회로 구현은 제조 기술, 집적 회로를 제조하기 위해 선택된 파운드리, 특정 프로젝트에 제공되는 셀의 라이브러리 등의 변화에 따라 변할 수 있다. 많은 경우, 이러한 상이한 구현을 생성하기 위해 상이한 설계 도구 또는 방법론에 의해 이루어진 선택은 임의적일 수 있다.
또한, 주어진 실시예에 대해 회로의 특정 기능 사양의 단일 구현이 다수의 디바이스(예를 들어, 수백만 개의 트랜지스터)를 포함하는 것이 일반적이다. 따라서, 이러한 정보의 엄청난 양은 등가의 가능한 구현의 광범위한 어레이는 물론이고 단일 실시예를 구현하는 데 사용되는 로우-레벨 구조의 전체 설명을 제공하는 것을 비실용적으로 만든다. 이러한 이유로, 본 개시는 산업계에서 일반적으로 채용되는 기능적 약칭을 사용하여 회로의 구조를 설명한다.
추가 실시예는 이하의 번호가 매겨진 예 중 하나 이상에 기초하여 고려된다.
1. 시스템으로서,
복수의 컴포넌트 회로들로서, 복수의 컴포넌트 회로들 중 각각의 컴포넌트 회로들은 각각의 레이트 제어 회로들을 포함하는, 복수의 컴포넌트 회로들; 및
복수의 컴포넌트 회로들에 커플링된 전력 분배기 회로를 포함하고,
전력 분배기 회로는 시스템에 대한 전력 예산에 기초하여 복수의 컴포넌트 회로들에 전력을 할당하도록 구성되고;
각각의 레이트 제어 회로들은 전력 분배기 회로에 대한 각각의 최저 요청들 및 각각의 전력 요청들을 생성하도록 구성되고, 각각의 최저 요청들은 대응하는 컴포넌트 회로들에 의해 소비가능한 전력의 최소량들을 나타내고;
전력 분배기 회로는 복수의 컴포넌트 회로들이 각각의 최저 요청들 및 각각의 전력 요청들의 최소값과 적어도 동일한 전력의 할당을 수신하는 것을 보장하도록 구성되고;
전력 분배기 회로는 전력 분배 정책 및 각각의 전력 요청들에 기초하여 남은 전력 예산을 할당하도록 구성된다.
2. 예 1의 시스템에 있어서, 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로는 주어진 컴포넌트 회로에서 감소된 전력 소비를 야기하도록 구성된 전력 제어 회로를 포함하고, 주어진 컴포넌트 회로에 대한 각각의 최저 요청은 전력 제어 회로가 야기할 수 있는 감소된 전력 소비의 최대량에 기초한다.
3. 예 2의 시스템에 있어서, 주어진 컴포넌트 회로는 사용 중에 비활성 트랜지스터들에서 누설 전류를 경험하고, 주어진 컴포넌트 회로에 대한 각각의 최저 요청은 누설 전류를 통해 소비되는 누설 전력에 추가로 기초한다.
4. 예 1의 시스템에 있어서, 주어진 컴포넌트 회로는 주어진 컴포넌트 회로의 전력 소비를 추정하도록 구성된 디지털 전력 추정(DPE: digital power estimation) 회로를 추가로 포함하고, 각각의 전력 요청은 DPE 회로로부터의 추정된 전력 소비에 기초한다.
5. 예 4의 시스템에 있어서, DPE 회로는 누설 전력을 추정하고, 누설 전력 및 감소된 전력 소비의 최대량에 기초하여 각각의 최저 요청을 제공하도록 추가로 구성된다.
6. 예 1 내지 예 5 중 어느 하나의 시스템에 있어서, 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로의 각각의 레이트 제어 회로와 전력 분배기 회로 사이의 물리적 상호 연결은 각각의 전력 요청 및 각각의 최저 요청을 전송하기 위한 공유된 버스를 포함하고, 각각의 레이트 제어 회로는 공유된 버스 상에서 전송하기 위해 각각의 전력 요청 및 각각의 최저 요청 중 하나를 선택하도록 구성된다.
7. 예 6의 시스템에 있어서, 각각의 레이트 제어 회로는 각각의 최저 요청의 가장 최근 전송 이후에 각각의 최저 요청의 변화에 기초하여 각각의 최저 요청을 선택하도록 구성된다.
8. 예 6 또는 예 7의 시스템에 있어서, 각각의 레이트 제어 회로는 각각의 전력 요청의 가장 최근 전송 이후 각각의 전력 요청의 변화에 기초하여 각각의 전력 요청을 선택하도록 구성된다.
9. 예 6 내지 예 8 중 어느 하나의 시스템에 있어서, 각각의 레이트 제어 회로는 각각의 전력 요청의 가장 최근 전송 이후 각각의 전력 요청에 변화가 없고 각각의 최저 요청의 가장 최근 전송 이후 각각의 최저 요청에 변화가 없음에 기초하여, 각각의 최저 요청 및 각각의 전력 요청 중 최소로 최근에 전송된 것을 선택하도록 구성된다.
10. 예 6 내지 예 9 중 어느 하나의 시스템에 있어서, 전력 분배기 회로는 각각의 전력 요청 및 각각의 최저 요청 중 선택되지 않은 것에 대한 최신 요청으로서 이전에 수신된 요청을 사용하도록 구성된다.
11. 예 1 내지 예 10 중 어느 하나의 시스템에 있어서, 전력 분배 정책은 각각의 유형들의 컴포넌트 회로들 중 남은 전력 예산의 분배를 특정하는 제1 레벨 정책을 포함한다.
12. 예 11의 시스템에 있어서, 전력 분배 정책은 주어진 유형의 컴포넌트 회로에 할당된 양에 대해, 주어진 유형의 컴포넌트 회로들 중의 양의 분재를 특정하는 제2 레벨 정책을 포함한다.
13. 시스템으로서,
각각의 반도체 기판들 상에 구현된 복수의 집적 회로들로서, 복수의 집적 회로들은 칩-간(inter-chip) 상호 연결을 통해 커플링되고, 복수의 집적 회로들의 각각의 집적 회로는,
복수의 컴포넌트 회로들로서, 복수의 컴포넌트 회로들 중 각각의 컴포넌트 회로들은 각각의 레이트 제어 회로들을 포함하는, 복수의 컴포넌트 회로들; 및
복수의 컴포넌트 회로들에 커플링된 전력 분배기 회로를 포함하고,
전력 분배기 회로는 각각의 집적 회로에 대한 전력 예산에 기초하여 복수의 컴포넌트 회로들에 전력을 할당하도록 구성되고;
각각의 레이트 제어 회로들은 각각의 전력 요청들 및 각각의 최저 요청들을 생성하도록 구성되고, 각각의 최저 요청들은 대응하는 컴포넌트 회로들에 의해 소비가능한 전력의 최소량들을 나타내고;
전력 분배기 회로는 복수의 컴포넌트 회로들이 각각의 최저 요청들 및 각각의 전력 요청들의 최소값과 적어도 동일한 전력의 할당을 수신하는 것을 보장하도록 구성되고;
전력 분배기 회로는 전력 분배 정책 및 각각의 전력 요청들에 기초하여 남은 전력 예산을 할당하도록 구성되고;
전력 분배기 회로는 칩-간 상호 연결을 통해 복수의 집적 회로들 중 다른 집적 회로의 전력 분배기 회로에 남은 전력 예산의 할당되지 않은 부분의 표시를 전송하도록 구성된다.
14. 예 13의 시스템에 있어서, 각각의 집적 회로의 전력 분배기 회로는 복수의 집적 회로들 중 다른 집적 회로의 전력 분배기 회로로부터 남은 전력 예산의 할당되지 않은 부분에 대한 제2 표시를 수신하도록 구성되고 전력 분배기 회로는 후속 전력 할당에서 할당되지 않은 부분을 포함하도록 구성된다.
15. 예 13 또는 예 14의 시스템에 있어서, 복수의 전압 레귤레이터들을 더 포함하고, 복수의 전압 레귤레이터들 중 주어진 전압 레귤레이터는 복수의 집적 회로들의 서브세트에 전력을 공급하도록 구성되고, 서브세트의 각각의 집적 회로들의 전력 분배기 회로들은 서브세트 중 할당되지 않은 부분의 표시들을 전송하도록 구성된다.
16. 방법으로서,
시스템의 복수의 컴포넌트 회로들의 각각의 컴포넌트 회로들의 각각의 레이트 제어 회로에 의해 시스템의 전력 분배기 회로에 대한 각각의 전력 요청들 및 각각의 최저 요청들을 생성하는 단계로서, 각각의 최저 요청들은 대응하는 컴포넌트 회로들에 의해 소비가능한 전력의 최소량들을 나타내는, 생성하는 단계; 및
전력 분배기 회로에 의해 복수의 컴포넌트 회로들에 전력을 할당하는 단계를 포함하고,
할당하는 단계는,
복수의 컴포넌트 회로들이 각각의 최저 요청들 및 각각의 전력 요청들의 최소값과 적어도 동일한 전력의 할당을 수신하도록 보장하는 단계; 및
전력 분배 정책 및 각각의 전력 요청들에 기초하여 남은 전력 예산을 할당하는 단계를 포함한다.
17. 예 16의 방법에 있어서, 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로는 주어진 컴포넌트 회로에서 감소된 전력 소비를 야기하도록 구성된 전력 제어 회로를 포함하고, 주어진 컴포넌트 회로에 대한 각각의 최저 요청은 전력 제어 회로가 야기할 수 있는 감소된 전력 소비의 최대량에 기초한다.
18. 예 16 또는 예 17의 방법에 있어서, 주어진 컴포넌트 회로는 사용 중에 비활성 트랜지스터들에서 누설 전류를 경험하고, 주어진 컴포넌트 회로에 대한 각각의 최저 요청은 누설 전류를 통해 소비되는 누설 전력에 추가로 기초한다.
19. 예 16 내지 예 18 중 어느 하나의 방법에 있어서, 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로의 각각의 레이트 제어 회로와 전력 분배기 회로 사이의 물리적 상호 연결은 각각의 전력 요청 및 각각의 최저 요청을 전송하기 위한 공유된 버스를 포함하고, 방법은 공유된 버스 상에서 전송하기 위해 각각의 전력 요청 및 각각의 최저 요청 중 하나를 선택하는 단계를 추가로 포함한다.
20. 예 19의 방법에 있어서, 공유된 버스 상에서 전송하기 위해 각각의 전력 요청 및 각각의 최저 요청 중 하나를 선택하는 단계는,
각각의 최저 요청의 가장 최근 전송 이후에 각각의 최저 요청의 변화에 기초하여 각각의 최저 요청을 선택하는 단계;
각각의 전력 요청의 가장 최근 전송 이후에 각각의 전력 요청의 변화에 기초하여 각각의 전력 요청을 선택하는 단계; 및
각각의 전력 요청의 가장 최근 전송 이후 각각의 전력 요청에 변화가 없고 각각의 최저 요청의 가장 최근 전송 이후 각각의 최저 요청에 변화가 없음에 기초하여, 각각의 최저 요청 및 각각의 전력 요청 중 최소로 최근에 전송된 것을 선택하는 단계를 포함한다.
위의 개시가 완전히 이해되면 다양한 변형들 및 수정들이 본 기술 분야의 통상의 기술자에게 명백해질 것이다. 이하의 청구범위는 이러한 모든 변형들 및 수정들을 포함하도록 해석되는 것으로 의도된다.

Claims (28)

  1. 시스템으로서,
    복수의 컴포넌트 회로들로서, 상기 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로는 복수의 독립적인 전력 도메인들 중 하나에 포함되고, 상기 복수의 컴포넌트 회로들은 각각의 레이트(rate) 제어 회로들을 포함하는, 상기 복수의 컴포넌트 회로들; 및
    상기 복수의 컴포넌트 회로들에 커플링된 전력 분배기 회로(power splitter circuit)를 포함하고,
    상기 전력 분배기 회로는 상기 시스템에 대한 전력 예산으로부터 상기 복수의 컴포넌트 회로들에 전력을 할당하도록 구성되고;
    상기 전력 분배기 회로는 상기 할당된 전력의 각각의 표시들을 상기 각각의 레이트 제어 회로들에 전달하도록 구성되고; 및
    상기 각각의 레이트 제어 회로들은 상기 각각의 레이트 제어 회로들에 제공되는 상기 할당된 전력의 상기 각각의 표시에 기초하여 대응하는 컴포넌트 회로들에서의 전력 소비를 관리하도록 구성되는, 시스템.
  2. 제1항에 있어서, 상기 할당된 전력은 복수의 크레딧(credit)들의 관점에서 표현되고, 주어진 크레딧은 특정된 전력량을 나타내며, 상기 할당된 전력의 상기 각각의 표시는 상기 복수의 크레딧들의 수를 포함하는, 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 주어진 컴포넌트 회로는 감소된 전력 소비를 요청하는 하나 이상의 입력들에 기초하여 상기 주어진 컴포넌트 회로 내의 전력 소비를 제한하도록 구성된 전력 제어 회로를 포함하고, 상기 각각의 레이트 제어 회로는 상기 하나 이상의 입력들을 사용하여 전력 소비를 관리하도록 구성되는, 시스템.
  4. 제3항에 있어서, 상기 각각의 레이트 제어 회로는 상기 하나 이상의 입력들 중 제1 입력을 사용하여 감소된 전력 소비의 제1 레벨을 요청하고, 상기 하나 이상의 입력들 중 제2 입력을 사용하여 감소된 전력 소비의 제2 레벨을 요청하도록 구성되고, 상기 제2 레벨은 상기 제1 레벨보다 더 감소된, 시스템.
  5. 제4항에 있어서, 상기 각각의 레이트 제어 회로는 제1 임계값 아래로 떨어지는 상기 할당된 전력의 남은 양에 기초하여 감소된 전력 소비의 상기 제1 레벨을 요청하도록 구성되는, 시스템.
  6. 제5항에 있어서, 상기 각각의 레이트 제어 회로는 제2 임계값 아래로 떨어지는 상기 할당된 전력의 상기 남은 양에 기초하여 감소된 전력 소비의 상기 제2 레벨을 요청하도록 구성되는, 시스템.
  7. 제4항 내지 제6항 중 어느 한 항에 있어서, 상기 제2 레벨은 상기 대응하는 컴포넌트 회로에 의해 구현되는 하나 이상의 전력 감소 메커니즘들의 각각을 사용 중(engage)인, 시스템.
  8. 제3항 내지 제7항 중 어느 한 항에 있어서, 상기 각각의 레이트 제어 회로는 상기 전력 제어 회로를 통한 감소된 전력 소비가 사용 중이었음을 나타내도록 구성되는, 시스템.
  9. 제3항 내지 제8항 중 어느 한 항에 있어서, 상기 주어진 컴포넌트 회로는 상기 주어진 컴포넌트 회로의 전력 소비를 추정하고 상기 추정된 전력 소비를 상기 각각의 레이트 제어 회로에 보고하도록 구성된 디지털 전력 추정(DPE: digital power estimation) 회로를 포함하고, 상기 각각의 레이트 제어 회로는 상기 추정된 전력 소비에 추가로 기초하여 상기 주어진 컴포넌트 회로의 전력 소비를 관리하도록 구성되는, 시스템.
  10. 제9항에 있어서, 상기 DPE 회로는 상기 전력 제어 회로에 커플링되고, 상기 전력 제어 회로가 상기 주어진 컴포넌트 회로의 전력 소비를 감소시키게 하도록 구성되는, 시스템.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 복수의 컴포넌트 회로들 중 적어도 하나는 복수의 프로세서들을 포함하는 프로세서 클러스터인, 시스템.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 복수의 컴포넌트 회로들 중 적어도 하나는 그래픽 프로세싱 유닛(GPU: graphics processing unit)인, 시스템.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 복수의 컴포넌트 회로들 중 적어도 하나는 주변 컴포넌트 회로인, 시스템.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 각각의 레이트 제어 회로들은 상기 전력 분배기 회로에 대한 각각의 전력 요청(power request)들 및 각각의 최저 요청(floor request)들을 생성하도록 구성되고, 상기 각각의 최저 요청들은 상기 대응하는 컴포넌트 회로들에 의해 소비가능한 전력의 최소량을 나타내고;
    상기 전력 분배기 회로는 상기 복수의 컴포넌트 회로들이 상기 각각의 최저 요청들 및 상기 각각의 전력 요청들의 최소값과 적어도 동일한 전력의 할당을 수신하는 것을 보장하도록 구성되고;
    상기 전력 분배기 회로는 전력 분배 정책 및 상기 각각의 전력 요청들에 기초하여 남은 전력 예산을 할당하도록 구성되는, 시스템.
  15. 제14항에 있어서, 상기 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로는 상기 주어진 컴포넌트 회로에서 감소된 전력 소비를 야기하도록 구성된 전력 제어 회로를 포함하고, 상기 주어진 컴포넌트 회로에 대한 상기 각각의 최저 요청은 상기 전력 제어 회로가 야기할 수 있는 감소된 전력 소비의 최대량에 기초하는, 시스템.
  16. 제15항에 있어서, 상기 주어진 컴포넌트 회로는 사용 동안에 비활성 트랜지스터들에서 누설 전류를 경험하고, 상기 주어진 컴포넌트 회로에 대한 상기 각각의 최저 요청들은 상기 누설 전류를 통해 소비되는 누설 전력에 추가로 기초하는, 시스템.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서, 상기 복수의 컴포넌트 회로 중 주어진 컴포넌트 회로의 상기 각각의 레이트 제어 회로와 상기 전력 분배기 회로 사이의 물리적 상호 연결은 상기 각각의 전력 요청 및 상기 각각의 최저 요청을 전송하기 위한 공유된 버스를 포함하고, 상기 각각의 레이트 제어 회로는 상기 공유된 버스 상에서 전송하기 위해 상기 각각의 전력 요청 및 상기 각각의 최저 요청 중 하나를 선택하도록 구성되는, 시스템.
  18. 제17항에 있어서, 상기 각각의 레이트 제어 회로는 상기 각각의 최저 요청의 가장 최근 전송 이후에 상기 각각의 최저 요청의 변화에 기초하여 상기 각각의 최저 요청을 선택하도록 구성되는, 시스템.
  19. 제17항 또는 제18항에 있어서, 상기 각각의 레이트 제어 회로는 상기 각각의 전력 요청의 가장 최근 전송 이후 상기 각각의 전력 요청의 변화에 기초하여 상기 각각의 전력 요청을 선택하도록 구성되는, 시스템.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서, 상기 각각의 레이트 제어 회로는 상기 각각의 전력 요청의 가장 최근 전송 이후 상기 각각의 전력 요청에 변화가 없고 상기 각각의 최저 요청의 가장 최근 전송 이후 상기 각각의 최저 요청에 변화가 없음에 기초하여, 상기 각각의 최저 요청 및 상기 각각의 전력 요청 중 최소로 최근에 전송된 것을 선택하도록 구성되는, 시스템.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서, 상기 전력 분배기 회로는 상기 각각의 전력 요청 및 상기 각각의 최저 요청 중 선택되지 않은 것에 대한 최신 요청으로서 이전에 수신된 요청을 사용하도록 구성되는, 시스템.
  22. 방법으로서,
    전력 분배기 회로에 의해 복수의 컴포넌트 회로들에 전력을 할당하는 단계로서, 상기 복수의 컴포넌트 회로들 중 주어진 컴포넌트 회로는 복수의 독립적인 전력 도메인들 중 하나에 포함되고, 상기 복수의 컴포넌트 회로들은 각각의 레이트 제어 회로들을 포함하는, 상기 할당하는 단계;
    상기 전력 분배기 회로로부터의 상기 할당된 전력의 각각의 표시들을 상기 각각의 레이트 제어 회로들에 전달하는 단계; 및
    상기 각각의 레이트 제어 회로들에 제공되는 상기 할당된 전력의 상기 각각의 표시에 기초하여 상기 각각의 레이트 제어 회로들에 의해 상기 복수의 컴포넌트 회로들의 전력 소비를 관리하는 단계를 포함하는, 방법.
  23. 제22항에 있어서, 상기 주어진 컴포넌트 회로는 감소된 전력 소비를 요청하는 하나 이상의 입력들에 기초하여 상기 주어진 컴포넌트 회로 내의 하나 이상의 회로들에 의한 전력 소비를 제한하도록 구성된 전력 제어 회로를 포함하고, 상기 복수의 컴포넌트 회로들의 전력 소비를 관리하는 단계는 상기 각각의 레이트 제어 회로에 의한 상기 하나 이상의 입력들을 사용하는 단계를 포함하는, 방법.
  24. 제23항에 있어서, 상기 하나 이상의 입력들을 사용하는 단계는,
    상기 하나 이상의 입력들 중 제1 입력을 사용하여 감소된 전력 소비의 제1 레벨을 요청하는 단계; 및
    상기 하나 이상의 입력들 중 제2 입력을 사용하여 감소된 전력 소비의 제2 레벨을 요청하는 단계를 포함하고, 상기 제2 레벨은 상기 제1 레벨보다 더 감소되는, 방법.
  25. 제24항에 있어서, 감소된 전력 소비의 상기 제1 레벨을 요청하는 단계는 제1 임계값 아래로 떨어지는 상기 할당된 전력의 남은 양에 기초하는, 방법.
  26. 제24항 또는 제25항에 있어서, 감소된 전력 소비의 상기 제2 레벨을 요청하는 단계는 제2 임계값 아래로 떨어지는 상기 할당된 전력의 상기 남은 양에 기초하는, 방법.
  27. 집적 회로로서,
    전력 분배기 회로를 포함하는 전력 관리자 회로;
    복수의 컴포넌트 회로들; 및
    하나 이상의 프로세서 클러스터들을 포함하고, 주어진 프로세스 클러스터는,
    복수의 프로세서들,
    상기 복수의 프로세서들에 커플링되고, 상기 복수의 프로세서들에서 소비되는 전력을 추정하도록 구성된 디지털 전력 추정(DPE) 회로, 및
    상기 복수의 프로세서들에 커플링된 레이트 제어 회로를 포함하고;
    여기서:
    상기 전력 분배기 회로는 상기 집적 회로에 대한 전력 예산으로부터 상기 복수의 컴포넌트 회로들 및 상기 하나 이상의 프로세서 클러스터들에 전력을 할당하도록 구성되고;
    상기 전력 분배기 회로는 상기 주어진 프로세서 클러스터에 대해 할당된 전력의 표시를 상기 레이트 제어 회로에 전달하도록 구성되고;
    상기 레이트 제어 회로는 상기 할당된 전력의 상기 표시에 기초하고 상기 DPE 회로로부터의 상기 추정된 전력 소비에 기초하여 대응하는 컴포넌트 회로들에서의 전력 소비를 관리하도록 구성되는, 집적 회로.
  28. 제27항에 있어서, 상기 주어진 프로세서 클러스터는 감소된 전력 소비를 요청하는 하나 이상의 입력들에 기초하여 상기 복수의 프로세서들에 의해 전력 소비를 제한하도록 구성된 전력 제어 회로를 더 포함하고, 상기 레이트 제어 회로는 상기 하나 이상의 입력들을 사용하여 전력 소비를 관리하도록 구성되는, 집적 회로.
KR1020247009706A 2021-09-24 2022-09-02 전역 집적 회로 전력 제어 KR20240044533A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202163247854P 2021-09-24 2021-09-24
US63/247,854 2021-09-24
US17/573,268 US20230101217A1 (en) 2021-09-24 2022-01-11 Global Integrated Circuit Power Control
US17/573,274 2022-01-11
US17/573,274 US20230109984A1 (en) 2021-09-24 2022-01-11 Request and Floor Interface for Current Control with Correctness in an SOC
US17/573,268 2022-01-11
PCT/US2022/042532 WO2023048930A1 (en) 2021-09-24 2022-09-02 Global integrated circuit power control

Publications (1)

Publication Number Publication Date
KR20240044533A true KR20240044533A (ko) 2024-04-04

Family

ID=85721075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247009706A KR20240044533A (ko) 2021-09-24 2022-09-02 전역 집적 회로 전력 제어

Country Status (2)

Country Link
KR (1) KR20240044533A (ko)
WO (1) WO2023048930A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769316B2 (en) * 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
WO2013147801A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Dynamic power limit sharing in a platform
US9423858B2 (en) * 2012-09-27 2016-08-23 Intel Corporation Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain
US9632552B2 (en) * 2013-04-10 2017-04-25 Dell Products L.P. System and method for aggressively budgeting power allocation for an information handling system using redundant configuration of power supply units
US9671857B2 (en) * 2014-03-25 2017-06-06 Qualcomm Incorporated Apparatus, system and method for dynamic power management across heterogeneous processors in a shared power domain

Also Published As

Publication number Publication date
WO2023048930A1 (en) 2023-03-30

Similar Documents

Publication Publication Date Title
US8924758B2 (en) Method for SOC performance and power optimization
US8793512B2 (en) Method and apparatus for thermal control of processing nodes
KR101748747B1 (ko) 프로세서의 구성가능한 피크 성능 제한들의 제어
US9261949B2 (en) Method for adaptive performance optimization of the soc
Chun et al. An energy case for hybrid datacenters
CN102567109B (zh) 中断分配方案
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
US9223383B2 (en) Guardband reduction for multi-core data processor
US11054882B2 (en) Externally-triggered throttling
US20240061617A1 (en) Memory Bank Hotspotting
US11960340B2 (en) Performance management during power supply voltage droop
KR20240044533A (ko) 전역 집적 회로 전력 제어
US20230109984A1 (en) Request and Floor Interface for Current Control with Correctness in an SOC
US20230101217A1 (en) Global Integrated Circuit Power Control
CN117980862A (zh) 全局集成电路功率控制
US11513848B2 (en) Critical agent identification to modify bandwidth allocation in a virtual channel
US11960341B2 (en) Power delivery reduction scheme for SoC
US11822411B2 (en) Telemetry push aggregation
US20240160267A1 (en) Telemetry Push Aggregation
CN117897672A (zh) 带有具有减少数量的相的功率源模式的片上系统
Knoth Power management in an embedded multiprocessor cluster
Datta et al. A power-aware GALS architecture for real-time algorithm-specific tasks