KR20240005970A - SoC 기반 전자 디바이스들에 대한 계층적 전력 관리 아키텍처 - Google Patents

SoC 기반 전자 디바이스들에 대한 계층적 전력 관리 아키텍처 Download PDF

Info

Publication number
KR20240005970A
KR20240005970A KR1020237043756A KR20237043756A KR20240005970A KR 20240005970 A KR20240005970 A KR 20240005970A KR 1020237043756 A KR1020237043756 A KR 1020237043756A KR 20237043756 A KR20237043756 A KR 20237043756A KR 20240005970 A KR20240005970 A KR 20240005970A
Authority
KR
South Korea
Prior art keywords
power
domains
local
throttling
memory
Prior art date
Application number
KR1020237043756A
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/701,552 external-priority patent/US11733757B2/en
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20240005970A publication Critical patent/KR20240005970A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/34Arrangements for cooling, heating, ventilating or temperature compensation ; Temperature sensing arrangements
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/16Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different main groups of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. forming hybrid circuits
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Power Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

전자 시스템은 복수의 전력 도메인들을 갖고, 각각의 도메인은 하나 이상의 프로세서 클러스터들, 제1 메모리, PMIC, 및 제2 메모리의 서브세트를 포함한다. 복수의 전력 센서들이 전자 시스템 상에 분산되고, 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성된다. 전력 관리 엔진은 하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 전력 센서들의 위치들에 기초하여 전력 샘플들을 프로세싱하도록 구성된다. 전력 관리 엔진은, 펌웨어 레벨에서 전력 도메인들의 전력 버짓들을 결정하고 그리고 그에 따라 전력 도메인들의 동작들을 인에이블함으로써 글로벌 전력 제어 동작을 구현하도록 구성된다. 전력 관리 엔진은 또한, 복수의 로컬 전력 제어 동작들이 전력 스로틀링 임계치들에 기초하여 전력 도메인들 상에서 직접 구현되는 것을 인에이블하도록 구성된다.

Description

SoC 기반 전자 디바이스들에 대한 계층적 전력 관리 아키텍처
관련 출원
본 출원은, 2021년 6월 25일자로 출원된 발명의 명칭이 "Dynamic Power Management for SoC-based Electronic Devices"인 미국 가특허 출원 제63/215,355호, 및 2021년 6월 25일자로 출원된 발명의 명칭이 "Hierarchical Power Management Architecture for SoC-based Electronic Devices"인 미국 가특허 출원 제63/215,351호에 대한 우선권을 주장하며, 이들 각각은 이로써 그 전체가 참고로 포함된다.
본 출원은 또한, 2022년 3월 22일자로 출원된 발명의 명칭이 "Hierarchical Power Management Architecture for SoC-based Electronic Devices"인 미국 특허 출원 제17/701,552호에 대한 우선권을 주장하며, 이는 이로써 그 전체가 참고로 포함된다.
기술분야
본 출원은 일반적으로 (예컨대, 시스템 온 칩(system on a chip, SoC)을 갖는) 전자 디바이스의 전력 관리에 관한 것으로, 특히 SoC 기반 전자 디바이스의 소비 전력(power consumption) 및 디바이스 성능을 모니터링 및 제어하기 위한 방법들, 시스템들, 및 비일시적 컴퓨터 판독가능 매체들에 관한 것이다.
전자 디바이스는 종종, 시스템 온 칩(SoC)을 전력 관리 집적 회로(power management integrated circuit, PMIC), 통신 포트들, 외부 메모리 또는 저장소, 및 메인 로직 보드(main logic board) 상의 다른 주변 기능 모듈들과 통합한다. SoC는 단일 패키지에 하나 이상의 마이크로프로세서 또는 중앙 프로세싱 유닛(central processing unit, CPU) 코어들, 메모리, 입력/출력 포트들, 및 이차 저장소를 포함한다. PMIC는 통상적으로, 메인 로직 보드 상의 SoC에 인접하게 배치되고, 메인 로직 보드 상에 형성된 전도성 와이어들을 통해 SoC에 다수의 직류(direct current, DC) 전력 공급 레일들을 제공한다. PMIC는 SoC의 동작들을 구동하도록 구성된 복수의 전력 레일들을 제공한다. 전력 특성들(예컨대, 소비 전력, 전류, 및 전압)은 각각의 전력 레일 및 SOC의 대응하는 부분에 대해 모니터링 및 제어된다. 현재 실시보다 더 효율적이고 유연한 전력 관리 메커니즘을 갖는 것이 유익할 것이다.
SoC 기반 전자 디바이스의 전력 관리 문제들을 해결하기 위해, 복수의 프로세서 클러스터들, 클러스터 메모리 또는 캐시, PMIC, 및 시스템 메모리에 더하여 복수의 분산 전력 센서들 및 전력 관리 엔진을 반도체 디바이스 또는 시스템에 제공하는 것이 매우 바람직할 것이다. 첨부된 청구항들의 범주 내의 시스템들, 방법들 및 디바이스들의 다양한 구현들 각각은 수개의 양태들을 가지며, 그 양태들 중 어떠한 단일 양태도 본 명세서에 설명된 속성들을 단독으로 담당하지 않는다. 첨부된 청구항들의 범주를 제한하지 않으면서, 본 개시내용을 고려한 후에, 그리고 특히 "발명을 실시하기 위한 구체적인 내용"이라는 명칭의 섹션을 고려한 후에, 당업자는, 다양한 구현들의 양태들이 펌웨어 레벨 및/또는 하드웨어 레벨로부터 바람직한 제어 레이트로 반도체 디바이스의 전력 관리를 제어하도록 구성된 동적 전력 관리 계층구조(hierarchy)를 반도체 디바이스에 제공하는 데 어떻게 사용되는지를 이해할 것이다. 구체적으로, 전력 관리 엔진은, 분산 전력 센서들로부터 전력 샘플들을 수집하고, 전력 샘플들로부터 전력 프로파일들 및 전력 스로틀링 임계치들을 생성하고, 상이한 전력 도메인들 간의 전력 버짓(power budget)들을 결정함으로써 글로벌(global) 펌웨어 레벨 전력 제어 동작을 구현하고, 그리고 상이한 전력 도메인들 상에서 글로벌 및 로컬(local) 하드웨어 레벨 전력 제어 동작들(예컨대, 로컬 스로틀링 액션)을 인에이블하도록 구성된다.
본 출원에서, "전력"은 광범위하게는 임의의 전력 관련 특성들을 지칭할 수 있다. 예를 들어, 전력 샘플들은 온도들, 소비 전력들, 전류 값들, 또는 이들의 조합을 포함하고, 전력 센서들은 온도, 소비 전력, 및 전류 센서들 중 임의의 것을 포함한다. 전력 프로파일들은 온도, 소비 전력, 및 전류 프로파일들 중 임의의 것일 수 있다. 전력 제어 동작들은 온도, 소비 전력, 또는 전류 프로파일들을 제어하기 위해 적용된다.
일 양태에서, 전력 관리 방법은 복수의 도메인들을 갖는 프로세서 시스템에서 구현된다. 방법은 일정 시간 지속기간(time duration)에 걸쳐 복수의 도메인들로부터 복수의 전력 샘플들을 수집하는 단계를 포함하고, 여기서 각각의 전력 샘플은 각자의 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함한다. 방법은, 복수의 도메인들의 복수의 전력 샘플들의 서브세트를 조합하여 복수의 시스템 온도 값들을 포함하는 시스템 온도 프로파일을 생성하는 단계 및 시스템 온도 프로파일이 제1 기준을 만족하는지 여부를 결정하는 단계를 추가로 포함한다. 방법은, 시스템 온도 프로파일이 제1 시간에 제1 기준을 만족한다는 결정에 따라, 사전정의된 제어 빈도로(at a predefined controlling frequency), 실시간으로, 시스템 온도 프로파일의 각자의 시스템 온도 값이 제2 기준을 만족하는지 또는 제3 기준을 만족하는지를 결정하는 단계를 추가로 포함한다. 방법은, 각자의 시스템 온도 값이 제2 기준을 만족한다는 결정에 따라, 펌웨어 레벨에서 복수의 도메인들의 전력 버짓들을 결정하는 단계 및 전력 버짓들에 따라 복수의 도메인들의 동작들을 인에이블하는 단계를 추가로 포함한다. 방법은, 각자의 시스템 온도 값이 제3 기준을 만족한다는 결정에 따라, 도메인들의 서브세트를 선택하는 단계 및 하드웨어 레벨에서 직접 도메인들의 서브세트 각각에 각자의 전력 스로틀링 액션을 적용하는 단계를 추가로 포함한다.
다른 양태에서, 전력 관리 방법은 복수의 도메인들을 갖는 프로세서 시스템에서 구현된다. 방법은 일정 시간 지속기간에 걸쳐 복수의 도메인들로부터 복수의 전력 샘플들을 수집하는 단계를 포함하고, 각각의 전력 샘플은 각자의 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함한다. 방법은, 복수의 도메인들의 복수의 전력 샘플들의 서브세트를 조합하여 복수의 시스템 전력 값들을 포함하는 시스템 전력 프로파일을 생성하는 단계 및 시스템 전력 프로파일이 제1 기준을 만족하는지 여부를 결정하는 단계를 추가로 포함한다. 방법은, 시스템 전력 프로파일이 제1 시간에 제1 기준을 만족한다는 결정에 따라, 사전정의된 제어 빈도로, 실시간으로, 시스템 전력 프로파일의 각자의 시스템 전력 값이 제2 기준을 만족하는지 또는 제3 기준을 만족하는지를 결정하는 단계를 추가로 포함한다. 방법은, 각자의 시스템 전력 값이 제2 기준을 만족한다는 결정에 따라, 펌웨어 레벨에서 복수의 도메인들의 전력 버짓들을 결정하는 단계 및 전력 버짓들에 따라 복수의 도메인들의 동작들을 인에이블하는 단계를 추가로 포함한다. 방법은, 각자의 시스템 전력 값이 제3 기준을 만족한다는 결정에 따라, 도메인들의 서브세트를 선택하는 단계 및 하드웨어 레벨에서 도메인들의 서브세트 각각에 각자의 전력 스로틀링 액션을 적용하는 단계를 추가로 포함한다.
또 다른 양태에서, 전자 시스템은 하나 이상의 프로세서 클러스터들, 제1 메모리(예컨대, 도 2의 캐시(208)), 전력 관리 집적 회로(PMIC), 및 제2 메모리(예컨대, 도 2의 메모리(104))를 포함한다. 복수의 전력 센서들은 전자 시스템 상에 분산되고 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집 또는 사전프로세싱하도록 구성된다. 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함한다. 전력 관리 엔진은 복수의 전력 센서들에 커플링되고, 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수신하고, 그리고 하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 전력 센서들의 위치들에 기초하여 전력 샘플들을 프로세싱하도록 구성된다. 전력 관리 엔진은, 하나 이상의 전력 프로파일들에 기초하여, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 전력 버짓들에 따라 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현하도록 구성된다. 전력 관리 엔진은 또한, 하나 이상의 전력 프로파일들에 기초하여, 복수의 전력 도메인들이 하드웨어 레벨에서 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하도록 구성된다. 로컬 전력 제어 동작들은 제1 레이트보다 큰 제2 레이트들을 갖는다.
이러한 예시적인 실시 형태들 및 구현들은, 본 개시내용을 제한하거나 한정하지 않고 오히려 그의 이해를 돕기 위한 예들을 제공하기 위해 언급된다. 추가적인 실시 형태들이 발명을 실시하기 위한 구체적인 내용에서 논의되고, 추가의 설명이 거기에 제공된다. 다른 구현들 및 이점들은 본 명세서 내의 설명들 및 도면들을 고려하여 당업자에게 명백할 수 있다.
도 1은 일부 구현들에 따른, 통상적인 전자 디바이스 내의 예시적인 시스템 모듈의 블록도이다.
도 2는 일부 구현들에 따른, 도 1에 도시된 전자 디바이스의 전력 관리 시스템의 블록도이다.
도 3은 일부 구현들에 따른, SoC 및 PMIC 칩을 갖는 집적 반도체 디바이스의 단면도이다.
도 4는 일부 구현들에 따른, 복수의 분산 전력 센서들 및 전력 관리 엔진을 포함하는 전자 디바이스의 프로세서 시스템의 블록도이다.
도 5a 및 도 5b는, 각각, 일부 구현들에 따른, 펌웨어 레벨 및 하드웨어 레벨에서 SoC 기반 전자 디바이스의 전력을 관리하도록 구성된 전력 관리 시스템의 블록도들이다.
도 5c는 일부 구현들에 따른, SoC 기반 전자 디바이스의 전력이 펌웨어 레벨 및 하드웨어 레벨 둘 모두에서 관리되는 포괄적인 전력 관리 스킴을 예시한다.
도 6은 일부 구현들에 따른, SoC를 포함하는 전자 디바이스의 디바이스 온도들의 시간도(temporal diagram)이다.
도 7은 일부 구현들에 따른, SoC 기반 전자 디바이스의 소비 전력을 관리하는 방법의 흐름도이다.
도 8은 일부 구현들에 따른, SoC 기반 전자 디바이스의 소비 전력을 관리하는 방법의 흐름도이다.
다양한 설명된 구현들의 더 양호한 이해를 위해, 유사한 참조 부호들이 도면들 전체에 걸쳐 대응하는 부분들을 지칭하는 하기 도면들과 함께 이하의 발명을 실시하기 위한 구체적인 내용이 참조되어야 한다. 유사한 참조 부호들은 도면들 전체에 걸쳐 대응하는 부분들을 지칭한다.
이제 특정 실시 형태들이 상세히 참조될 것이며, 그 예들은 첨부 도면들에 예시되어 있다. 하기의 상세한 설명에서는, 본 명세서에 제시된 주제를 이해하는 것을 돕기 위해 다수의 비제한적인 특정 세부사항들이 기술된다. 그러나, 다양한 대안들이 청구항들의 범주를 벗어나지 않으면서 사용될 수 있고, 주제가 이러한 특정 세부사항들 없이 실시될 수 있음이 당업자에게 명백할 것이다.
본 출원의 다양한 실시 형태들은 펌웨어 레벨 및/또는 하드웨어 레벨로부터 바람직한 제어 레이트로 반도체 디바이스(예컨대, SoC)의 전력 관리를 제어하도록 구성된 동적 전력 관리 계층구조에 관한 것이다. 구체적으로, 전력 관리 엔진은, 분산 전력 센서들로부터 전력 샘플들을 수집하고, 전력 샘플들로부터 전력 프로파일들 및 전력 스로틀링 임계치들을 생성하고, 상이한 전력 도메인들 간의 전력 버짓들을 결정함으로써 글로벌 펌웨어 레벨 전력 제어 동작을 구현하고, 그리고 상이한 전력 도메인들 상에서 글로벌 및 로컬 하드웨어 레벨 전력 제어 동작들(예컨대, 로컬 스로틀링 액션)을 인에이블하도록 구성된다. 그러한 동적 전력 관리 계층구조와 비교하여, 기존의 솔루션들은 각각의 전력 레일 및 SOC의 대응하는 부분에 대한 전력 특성들(예컨대, 소비 전력, 전류, 및 전압)을 모니터링 및 제어한다. 동적 전력 관리 계층구조는 보다 효율적이고 유연한 전력 관리 메커니즘을 제공한다.
도 1은 일부 구현들에 따른, 통상적인 전자 디바이스 내의 예시적인 시스템 모듈(100)의 블록도이다. 이러한 전자 디바이스 내의 시스템 모듈(100)은 적어도, 하나 이상의 프로세서들을 갖는 시스템 온 칩(SoC)(102), 프로그램들, 명령들 및 데이터를 저장하기 위한 메모리 모듈들(104), 입력/출력(I/O) 제어기(106), 네트워크 인터페이스들(108)과 같은 하나 이상의 통신 인터페이스들, 및 이러한 컴포넌트들을 상호연결하기 위한 하나 이상의 통신 버스들(150)을 포함한다. 일부 구현들에서, I/O 제어기(106)는 SoC(102)가 범용 직렬 버스 인터페이스를 통해 I/O 디바이스(예컨대, 키보드, 마우스 또는 터치 스크린)와 통신할 수 있게 한다. 일부 구현들에서, 네트워크 인터페이스들(108)은 Wi-Fi, 이더넷 및 블루투스 네트워크들에 대한 하나 이상의 인터페이스들을 포함하고, 이들 각각은 전자 디바이스가 외부 소스, 예컨대, 서버 또는 다른 전자 디바이스와 데이터를 교환할 수 있게 한다. 일부 구현들에서, 통신 버스들(150)은 시스템 모듈(100)에 포함된 다양한 시스템 컴포넌트들 간의 통신들을 상호연결 및 제어하는 회로부(때때로 칩셋으로 불림)를 포함한다.
일부 구현들에서, 메모리 모듈들(104)은 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들과 같은 고속 랜덤 액세스 메모리를 포함한다. 일부 구현들에서, 메모리 모듈들(104)은 비휘발성 메모리, 이를테면 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드 스테이트 저장 디바이스들을 포함한다. 일부 구현들에서, 메모리 모듈들(104), 또는 대안적으로 메모리 모듈들(104) 내의 비휘발성 메모리 디바이스(들)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 구현들에서, 메모리 슬롯들이 메모리 모듈들(104)을 수용하기 위한 시스템 모듈(100) 상에 예비된다. 일단 메모리 슬롯들에 삽입되면, 메모리 모듈들(104)은 시스템 모듈(100)에 통합된다.
일부 구현들에서, 시스템 모듈(100)은 이하로부터 선택되는 하나 이상의 컴포넌트들을 추가로 포함한다:
Figure pct00001
전자 디바이스에서, SoC(102)와, 메모리 모듈들(104)을 포함한 메모리 컴포넌트들 사이의 통신을 제어하는 메모리 제어기(110);
전자 디바이스에 데이터를 저장하기 위해 집적 회로 어셈블리들을 적용하고, 많은 구현들에서, NAND 또는 NOR 메모리 구성들에 기초하는 솔리드 스테이트 드라이브(SSD)들(112);
전자기계 자기 디스크들에 기초하여 디지털 정보를 저장 및 검색하기 위해 사용되는 종래의 데이터 저장 디바이스인 하드 드라이브(114);
각각이 별개의 DC 공급 전압을 수신하도록 구성되는 하나 이상의 직류(DC) 전력 공급 인터페이스들을 포함하는 전력 공급 커넥터(116);
전자 디바이스 내의 다양한 컴포넌트들 또는 회로들(예컨대, SoC(102) 내의 프로세서 코어들)에 의해 요구되는 바와 같이, DC 전력 공급 인터페이스들을 통해 수신된 별개의 DC 공급 전압들을 다른 원하는 내부 공급 전압들, 예컨대, 5V, 3.3V 또는 1.8V로 변조하는 전력 관리 집적 회로(PMIC)(118);
출력 이미지들의 하나 이상의 디스플레이 디바이스들에 대한 피드를 그들의 바람직한 이미지/비디오 포맷들에 따라 생성하는 그래픽 모듈(120); 및
컴퓨터 프로그램들의 제어 하에서 전자 디바이스로의 그리고 그로부터의 오디오 신호들의 입력 및 출력을 용이하게 하는 사운드 모듈(122).
통신 버스들(150)은 또한, 컴포넌트들(110 내지 122)을 포함한 다양한 시스템 컴포넌트들 간의 통신들을 상호연결 및 제어함에 유의한다.
당업자는, 메모리 모듈들(104) 내의 그리고 SSD들(112) 내의 비일시적 컴퓨터 판독가능 저장 매체들에 정보를 저장하기 위해 새로운 데이터 저장 기술들이 개발됨에 따라, 다른 비일시적 컴퓨터 판독가능 저장 매체들이 사용될 수 있다는 것을 알고 있다. 이러한 새로운 비일시적 컴퓨터 판독가능 저장 매체들은, 비록 각자의 데이터 저장 기술들이 현재 개발 중이고 아직 상용화되지 않았더라도, 생물학적 재료들, 나노와이어들, 탄소 나노튜브들 및 개별 분자들로부터 제조된 것들을 포함하지만 이에 제한되지 않는다.
일부 구현들에서, SoC(102)는 하나 이상의 집적 회로들을 포함하는 반도체 패키지로 구현되고, 각각의 집적 회로는 단일 기판 상에 하나 이상의 마이크로프로세서 또는 CPU 코어들, 메모리, 입력/출력 포트들 및 2차 저장소의 서브세트를 통합한다. PMIC(118)는 또한, 단일 기판 상에 각각 형성되는 하나 이상의 집적 회로들을 포함하는 반도체 패키지로 구현된다. SoC(102)는 하나 이상의 전력 레일들을 통해 PMIC(118)에 의해 제공되는 하나 이상의 내부 공급 전압들(레일 전압들로도 불림)을 수신하도록 구성된다. 일부 구현들에서, SoC(102) 및 PMIC(118) 둘 모두는 메인 로직 보드 상에, 예컨대 메인 로직 보드의 2개의 별개의 영역들 상에 장착되고, 메인 로직 보드에 형성된 전도성 와이어들을 통해 서로 전기적으로 커플링된다. 이러한 배열은, SoC의 성능을 손상시킬 수 있는, 예컨대, 내부 공급 전압에서 전압 강하를 야기할 수 있는 기생 효과들 및 전기적 노이즈를 도입한다. 대안적으로, 후술되는 다양한 구현들에 따르면, SoC(102) 및 PMIC(118)의 반도체 다이들은 (예컨대, 도 3에서) 집적 반도체 디바이스(140)에 수직으로 패키징되어, 그들이 메인 로직 보드에 형성되지 않은 전기 연결부(electrical connection)들을 통해 서로 전기적으로 커플링되도록 한다. SoC(102) 및 PMIC(118)의 반도체 다이들의 그러한 수직 배열은 SoC(102)와 PMIC(118) 사이의 전기 연결부들의 길이를 감소시키고, 메인 로직 보드 상의 전도성 와이어들을 라우팅하는 것에 의해 야기되는 성능 저하를 회피한다.
일부 구현들에서, 일반적인 PMIC(118)는 상이한 유형들의 전자 디바이스들에서 상이한 유형들의 SoC(102)를 구동하도록 구성된다. PMIC(118) 및 SoC(102)가 나란히 배열되는지 또는 수직으로 배열되는지에 상관없이, PMIC(118)는 메인 회로 보드와 관련하여 동일한 풋프린트를 점유하는 한편, SoC(102)는 내부에 통합된 전자 모듈들에 기초하여 별개의 풋프린트를 가질 수 있다. PMIC(118)는 필드 프로그래밍가능 어레이로 배열되는 복수의 전압 조정기 유닛들을 포함한다. 복수의 전압 조정기 유닛들은 서로 동일하거나, 하나 초과의 유형의 전압 조정기 유닛들을 포함한다. 특정 전자 디바이스에서, 제어 신호들은, SOC(102) 및 다른 전자 모듈들(만약 있다면)에 전력을 공급하는 데 필요한 전력 레일들의 레일 전압들 및 레일 전류들에 기초하여 결정된다. 이러한 전력 레일들 각각에 대해, 대응하는 제어 신호는 PMIC(118)의 필드 프로그래밍가능 어레이의 전압 조정기 유닛들의 서브세트를 선택하는 데 사용되고, 선택된 전압 조정기 유닛들은 집합적으로 각자의 전력 레일에 대해 레일 전압에서 레일 전류를 제공한다. 이와 같이, PMIC(118)는 이러한 제어 신호들에 의해 재구성되어 SoC(102)의 전력 레일들에 레일 전압들 및 전류들을 제공하고, PMIC(118) 내의 복수의 구성가능한 전압 조정기들에서의 각각의 전압 조정기 유닛은 중복되거나 제어 신호들 중 하나에 의해 전력 레일들 중 하나를 구동하도록 선택된다.
도 2는 일부 구현들에 따른, 하나 이상의 프로세싱 클러스터들(202)(예컨대, 제1 프로세싱 클러스터(202-1), 제M 프로세싱 클러스터(202-M))을 갖는 예시적인 전자 디바이스(200)의 블록도이다. 전자 디바이스(200)는 프로세싱 클러스터들(202)에 더하여 캐시(208) 및 메모리(104)를 추가로 포함한다. 캐시(208)는 SOC(102) 상에서 프로세싱 클러스터들(202)에 커플링되는데, 이는 SOC(102) 외부에 있는 메모리(104)에 추가로 커플링된다. 각각의 프로세싱 클러스터(202)는 하나 이상의 프로세서들(프로세싱 코어들로도 불림)(204) 및 클러스터 캐시(206)를 포함한다. 클러스터 캐시(206)는 하나 이상의 프로세서들(204)에 커플링되고, 하나 이상의 프로세서들(204)에 대한 하나 이상의 요청 큐들을 유지한다. 일부 구현들에서, 각각의 프로세서(204)는, 명령 캐시 및 데이터 캐시로 선택적으로 분할되는 코어 캐시(도 2에 도시되지 않음)를 추가로 포함하고, 코어 캐시는 각자의 프로세서(204)에 의해 즉시 실행될 수 있는 명령들 및 데이터를 저장한다. 일례에서, 제1 프로세싱 클러스터(202-1)는 제1 프로세서(204-1), ...., 제N 프로세서(204-N), 및 제1 클러스터 캐시(206-1)를 포함하고, 여기서 N은 1보다 큰 정수이다. 일부 구현들에서, SOC(102)는 단일 프로세싱 클러스터(202-1)만을 포함한다. 대안적으로, 일부 구현들에서, SOC(102)는 적어도 추가적인 프로세싱 클러스터(202), 예컨대 제M 프로세싱 클러스터(202-M)를 포함한다. 제M 프로세싱 클러스터(202-M)는 제1 프로세서, ...., 제N' 프로세서, 및 제M 클러스터 캐시를 포함하고, 여기서 N'은 1보다 큰 정수이다.
일부 구현들에서, 하나 이상의 프로세싱 클러스터들(202)은 전자 디바이스에 대한 중앙 프로세싱 유닛을 제공하도록 구성되고, 캐시들의 계층구조와 연관된다. 예를 들어, 캐시들의 계층구조는 그들의 별개의 동작 속도(operational speed)들 및 크기들에 기초하여 구별되는 3개의 레벨들을 포함한다. 본 출원의 목적들을 위해, 메모리(캐시 메모리를 포함함)의 "속도"에 대한 언급은 메모리에 데이터를 기입하거나 그로부터 데이터를 판독하는 데 필요한 시간과 관련되고(예컨대, 더 빠른 메모리는 더 느린 메모리보다 짧은 기입 및/또는 판독 시간들을 가짐), 메모리의 "크기"에 대한 언급은 메모리의 저장 용량과 관련된다(예컨대, 더 작은 메모리는 더 큰 메모리보다 적은 저장 공간을 제공함). 코어 캐시, 클러스터 캐시(206), 및 캐시(208)는 제1 레벨(L1) 캐시, 제2 레벨(L2) 캐시, 및 제3 레벨(L3) 캐시에 각각 대응한다. 각각의 코어 캐시는 각자의 프로세서(204)에 의해 직접 실행될 명령들 및 데이터를 보유하고, 메모리의 3개의 레벨들 중에서 가장 빠른 동작 속도 및 가장 작은 크기를 갖는다. 각각의 프로세싱 클러스터(202)에 대해, 클러스터 캐시(206)는 코어 캐시보다 동작적으로 더 느리고 크기가 더 크고, 각자의 프로세싱 클러스터(202)의 프로세서(204)에 의해 액세스될 가능성이 더 높은 데이터를 보유한다. 캐시(208)는 복수의 프로세싱 클러스터들(202)에 의해 공유되고, 각각의 코어 캐시 및 클러스터 캐시(206)보다 크기가 더 크고, 속도가 더 느리다.
프로세싱 클러스터들(202)은 클러스터 캐시(206), 캐시(208) 또는 메모리(104)로부터 각각의 코어 캐시에 의해 보유될 명령들 및 데이터를 추출하기 위한 프리페치 요청(prefetch request)들을 발행한다. 프리페치 요청들이 클러스터 캐시(206)에 의해 만족되는 경우, 클러스터 캐시(206)는 프로세서들(204)에 의한 실행을 위해 명령들 및 데이터를 각자의 코어 캐시에 제공한다. 반대로, 프리페치 요청들이 클러스터 캐시(206)에 의해 만족되지 않는 경우, 프리페치 요청들은 명령들 및 데이터를 추출하기 위해 캐시(208)로 전송된다. 프리페치 요청들이 캐시(208)에 의해 만족되는 경우, 캐시(208)는 명령들 및 데이터를 클러스터 캐시(206)에 제공하는데, 이는 추가로, 명령들 및 데이터를 프로세서들(204)에 의한 실행을 위해 각자의 코어 캐시에 전달한다. 반대로, 프리페치 요청들이 캐시(208)에 의해 만족되지 않는 경우, 프리페치 요청들은 명령들 및 데이터를 추출하기 위해 SoC(102) 외부의 메모리(104)로 전송된다. 메모리(104)는 명령들 및 데이터를 캐시(208)에 제공하는데, 이는 명령들 및 데이터를 클러스터 캐시(206), 그리고 이어서 각자의 코어 캐시에 전달한다.
추가적으로, 프로세싱 클러스터들(202)은 각각의 프로세싱 클러스터의 정상 동작 동안 클러스터 캐시(206), 캐시(208) 또는 메모리(104)에 데이터를 기입하고 그로부터 데이터를 판독하라는 메모리 액세스 요청들을 발행한다. 각각의 메모리 액세스 요청은 각자의 메모리 액세스 요청이 타깃 캐시 또는 메모리에 도달할 때까지, 클러스터 캐시(206), 캐시(208), 및 메모리(104)로부터 순차적으로 전달된다. 타깃 캐시 또는 메모리에 기입될 데이터는 또한, 각자의 데이터가 타깃 캐시 또는 메모리에 도달할 때까지, 클러스터 캐시(206), 캐시(208), 및 메모리(104)로부터 순차적으로 전달된다. 그에 반해서, 타깃 캐시 또는 메모리로부터 판독된 데이터는 프로세서들(204)에 의해 사용될 각자의 코어 캐시들에 직접 제공된다.
본 출원의 다양한 구현들에서, 프로세싱 클러스터들(202), PMIC(118), 캐시(208), 및 메모리(104)의 동작들은 전력을 소비하고 전자 디바이스(200) 상에 열을 생성하고, 전력 관리 엔진(210)이 펌웨어 레벨 및 하드웨어 레벨 둘 모두로부터 전자 디바이스(200)의 소비 전력들을 관리하기 위해 적용된다. 구체적으로, 전력 관리 엔진(210)은 전자 디바이스(200) 상에 분산된 복수의 전력 센서들로부터 복수의 전력 샘플들을 수신하도록 구성된다. SOC(102), PMIC(118), 및 메모리(104)는 복수의 전력 도메인들로 파티셔닝된다. 전력 샘플들은 개별 전력 도메인들에 대한 하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 전력 센서들의 위치들에 기초하여 프로세싱된다. 각각의 전력 프로파일은 선택적으로, 전체 전자 디바이스(200) 또는 다수의 도메인들의 조합(예컨대, 프로세서 클러스터(202), SoC(102))의 시스템 전력 프로파일 또는 개별 전력 도메인(예컨대, 프로세서(204))의 로컬 전력 프로파일이다. 하나 이상의 전력 프로파일들에 기초하여, 전력 관리 엔진(210)은, 복수의 전력 도메인들 간의 전력 버짓을 결정하고 그리고 전력 버짓들에 따라 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현한다. 추가로, 로컬 전력 프로파일들에 기초하여, 전력 관리 엔진(210)은 복수의 전력 스로틀링 임계치들에 기초하여 복수의 전력 도메인들(예컨대, 메모리(104), PMIC(118), 프로세싱 클러스터(202-M)) 상에서 제2 레이트들을 갖는 복수의 로컬 전력 제어 동작들을 인에이블한다. 로컬 전력 제어 동작들은 글로벌 전력 제어보다 더 직접적이고, 각각의 제2 레이트는 제1 레이트보다 크다. 예를 들어, 글로벌 전력 제어 동작의 제1 레이트는 50μs이고 대응하는 열 응답은 500μs 동안 지속되는 한편, 로컬 전력 제어 동작들의 제2 레이트는 20μs이고 대응하는 열 응답은 100μs 동안 지속된다. 이러한 수단에 의해, 전자 디바이스(200)는 계층적 스킴이 펌웨어 레벨 및 하드웨어 레벨 둘 모두로부터 소비 전력을 관리하는 것을 인에이블한다.
일부 구현들에서, 하나 이상의 전력 프로파일들은 전자 시스템의 복수의 전력 도메인들의 서브세트 또는 전부의 평균 소비 전력 또는 평균 총 전류를 추적하는 시스템 전력 프로파일을 포함한다. 전력 관리 엔진(210)은, 시스템 전력 프로파일에 따라, 전력 제어 레이트에 대한 요건, 글로벌 전력 제어 동작의 제1 레이트, 및 로컬 전력 제어 동작들의 제2 레이트들에 기초하여 글로벌 전력 제어 동작 및 복수의 로컬 전력 제어 동작들을 인에이블하도록 구성된다. 전력 제어 레이트에 대한 요건이 제1 레이트보다 빠른 경우, 로컬 전력 제어 동작들이 소비 전력 또는 총 전류를 감소시키기 위해, 즉 하드웨어 레벨에서 직접 구현되는 "하드 스로틀링" 프로세스에 의해 직접 구현될 필요가 있다. 전력 제어 레이트에 대한 요건이 제1 레이트 미만인 경우, 글로벌 전력 제어 동작이 전력 버짓들(예컨대, 전력 도메인들의 P-상태들)을 조정하고 그리고 전력 버짓들에 기초하여, 즉 펌웨어 레벨로부터 개시되는 "소프트 스로틀링" 프로세스에 의해 로컬 전력 제어 동작들을 인에이블하기 위해 취해질 수 있다. 전력 제어 레이트에 대한 요건은 전자 시스템에 의해 허용되는 최대 온도(T MAX ), 최대 소비 전력(P MAX ) 및 최대 전류 값(I MAX )을 참조하여 결정된다. 이러한 수단에 의해, 시스템 전력 프로파일은 전자 시스템의 복수의 전력 도메인들의 서브세트 또는 전부에 대한 사전정의된 상한 미만으로 제어된다.
일부 구현들에서, 하나 이상의 전력 프로파일들은 제1 전력 도메인의 전류를 추적하는 로컬 전류 프로파일을 포함한다. 전력 관리 엔진(210)은, 로컬 전류 프로파일에 따라, 전력 제어 레이트에 대한 요건, 글로벌 전력 제어 동작의 제1 레이트, 및 로컬 전력 제어 동작들의 제2 레이트들에 기초하여 글로벌 전력 제어 동작 및 제1 전력 도메인에 초점을 맞춘 로컬 전력 제어 동작을 인에이블하도록 구성된다. 전력 제어 레이트에 대한 요건은 제1 전력 도메인에 의해 허용되는 최대 온도(T MAX ), 최대 소비 전력(P MAX ) 및 최대 전류 값(I MAX )을 참조하여 결정된다. 이러한 수단에 의해, 로컬 전류 프로파일은 제1 전력 도메인에 대한 사전정의된 전류 한계 미만으로 제어된다.
도 3은 일부 구현들에 따른, 집적 반도체 디바이스(300)의 단면도이다. 반도체 디바이스(300)는 반도체 패키지에 적어도 하나의 SoC 다이(202) 및 적어도 하나의 PMIC 다이(118)를 통합하고, 적어도, 제1 표면(304A), 및 제1 표면(304A)과 반대편에 있는 제2 표면(304B)을 갖는 패키지 기판(304)을 포함한다. SoC 다이(202)는 패키지 기판(304)의 제1 표면(304A) 상에 배치되고, PMIC 다이(118)는 패키지 기판(304)의 제2 표면(304B)에 커플링된다. 일부 구현들에서, 제1 인터포저(interposer)(324)가 SoC 다이(302)와 패키지 기판(304)의 제1 표면(304A) 사이에 배치된다. 일부 구현들에서, 제2 인터포저(328)가 PMIC 다이(118)와 패키지 기판(304)의 제2 표면(304B) 사이에 배치된다. 일부 구현들에서, 집적 반도체 디바이스(300)는 메모리(104) 및 전력 관리 엔진(210)과 함께 인쇄 회로 보드(printed circuit board, PCB) 상에 배치된다. 전력 관리 엔진(210)은 펌웨어 레벨(즉, 보드 레벨) 및 하드웨어 레벨(즉, 개별 하드웨어 레벨, 이를테면 SoC 레벨 및 메모리 레벨) 둘 모두에서 PCB 상에 형성된 전체 전자 시스템의 소비 전력을 관리하도록 구성된다. 일부 구현들에서, 집적 반도체 디바이스(300)는 하나 이상의 전력 도메인들을 포함하고, 전력 관리 엔진(210)은 하드웨어 레벨에서 각각의 개별 전력 도메인의 소비 전력을 관리하도록 구성된다.
패키지 기판(304)은, 패키지 기판(304)의 본체를 관통하고 각각 제1 및 제2 표면들(304A, 304B) 둘 모두에 노출되는 복수의 제1 비아 인터커넥트(first via interconnect)들(306)을 추가로 포함한다. PMIC 다이(118)는 패키지 기판(304)의 복수의 제1 비아 인터커넥트들(306)을 통해 SoC 다이(202)에 전기적으로 커플링된다. 구체적으로, PMIC 다이(118)는 전력 레일들에 제공되는 복수의 레일 전압들을 출력하도록 구성된 복수의 DC 연결부들(308)을 포함한다. PMIC 다이(118)가 패키지 기판(304)의 제2 표면(304B) 상에 장착될 때, DC 연결부들(308)은 패키지 기판(304)의 복수의 제1 비아 인터커넥트들(306)에 전기적으로 커플링된다. 일부 구현들에서, SoC 다이(202)는 복수의 레일 전압들을 수신하도록 구성된 복수의 전력 연결부들(312)을 포함한다. SoC 다이(202)가 패키지 기판(304)의 제1 표면(304A) 상에 장착될 때, 전력 연결부들(312)은 패키지 기판(304)의 복수의 제1 비아 인터커넥트들(306)에 전기적으로 커플링된다. 이와 같이, PMIC 다이(118)는 PMIC 다이(118)의 DC 연결부들(308), SoC 다이(202)의 전력 연결부들(312), 및 패키지 기판(304)의 제1 비아 인터커넥트들(306)을 통해 SoC 다이(202)에 DC 전력(즉, 전력 레일들의 레일 전압들 및 레일 전류)을 제공하도록 구성된다. 추가로, 매우 낮은 임피던스 DC 연결부들(308)을 사용함으로써, PMIC 다이(118)에 의해 SoC 다이(202)에 제공된 DC 전력의 품질이, PMIC 다이(118) 및 SoC 다이(202)가 별도로 패키징되고 메인 회로 보드 상에 나란히 포지셔닝되는 시스템들에 비해 실질적으로 개선된다.
일부 구현들에서, PMIC 다이(118) 상의 전력 관리 인터페이스는 SoC 다이(202)의 마스터 전력 관리 인터페이스에 의해 제어되고, SoC 다이(202)로부터 디지털 전력 제어 신호들을 수신하도록 구성된다. 제1 비아 인터커넥트들(306)의 서브세트는 SoC 다이(202)로부터 PMIC 다이(118)로 디지털 전력 제어 신호들을 전송하도록 구성된다.
SoC 다이(202)는 패키지 기판(304) 상에 제1 풋프린트를 갖고, PMIC(118)는 패키지 기판(304) 상에 제2 풋프린트를 갖는다. 제1 및 제2 풋프린트들은 복수의 제1 비아 인터커넥트들(306)을 사용하여 직접 PMIC 다이(118)의 DC 연결부들(308)과 SoC 다이(202)의 전력 연결부들(312)을 커플링시키는 목적들을 위해 적어도 부분적으로 중첩된다. 일부 상황들에서, SoC 다이(202)의 제1 풋프린트는 PMIC 다이(118)의 제2 풋프린트보다 크고 그를 완전히 에워싼다. 대안적으로, 일부 상황들에서, SoC 다이(202)의 제1 풋프린트는 PMIC 다이(118)의 제2 풋프린트로부터 오프셋되지만, PMIC 다이(118)의 제2 풋프린트와 적어도 부분적으로 중첩된다. PMIC 다이(118)의 DC 연결부들(308), SoC 다이(202)의 전력 연결부들(312), 및 패키지 기판(304)의 제1 비아 인터커넥트들(306)은 제1 및 제2 풋프린트들의 중첩된 영역에 정렬되고 에워싸인다.
일부 구현들에서, 집적 반도체 디바이스(300)는 패키지 기판(304)의 제1 표면(304A)에 커플링된 커버(314)를 추가로 포함한다. 커버(314)는 SoC 다이(202) 및 패키지 기판(304)의 제1 표면(304A)의 적어도 일부를 감추도록 구성되고, 그에 의해 SoC 다이(202) 및 제1 표면(304A)의 적어도 일부를 보호한다. 추가로, 일부 구현들에서, 커버(314)는 전기 전도성 재료로 제조되고, 커버(314)에 의해 완전히 감춰진 경우에는, SoC 다이(202) 및 제1 표면(304A) 상의 임의의 다른 회로에 대해, 또는 제1 표면(304A)이 커버(314)에 의해 부분적으로만 감춰진 경우에는, 커버(314)에 의해 감춰진 제1 표면(304A)의 일부에 대해 정전 차폐(electrostatic shielding)를 제공하기 위해 접지되도록 구성된다. 일부 상황들에서, 커버(314)는 SoC 다이(202)에 의해 생성된 열을 소산시키도록 구성된 열 전도성 재료로 제조된다.
일부 구현들에서, 반도체 디바이스(300)는 소켓 기판(318)을 추가로 포함한다. 소켓 기판(318)은 패키지 기판(304)의 제2 표면(304B)을 향하는 제3 표면(318A)을 갖는다. 패키지 기판(304)은 복수의 전기 커넥터들(320)을 통해 소켓 기판(318)에 전기적으로 커플링된다. 구체적으로, 패키지 기판(304)의 제2 표면(304B)은, PMIC 다이(118)가 기계적으로 커플링되는 제1 영역(예컨대, 중심 영역) 및 복수의 전기 커넥터들(320)이 위치되는 제2 영역(예컨대, 주변 영역)을 포함한다. 일례에서, 제2 영역은 제1 영역에 인접하고 이를 둘러싼다. 일부 상황들 하에서, 반도체 디바이스(300)에는 소켓 기판(318)이 제공됨에 유의한다. 그러나, 일부 상황들 하에서, 소켓 기판(318)은 도 1의 전자 디바이스의 회로 보드 상에 고정되고, 집적 반도체 디바이스(300)의 일부가 아니다. 오히려, 반도체 디바이스(300)는 PMIC 다이(118)와 SoC 다이(202)의 조합의 기능들을 제공하도록 제공되는 교체가능한 부분이다.
일부 구현들에서, 소켓 기판(318)의 제3 표면(318A)은 실질적으로 평평하고, PMIC 다이(118)가 패키지 기판(304)의 제2 표면(304B)과 소켓 기판(318)의 제3 표면(318A) 사이에 배치된다. 대안적으로, 일부 구현들에서, 소켓 기판(318)은, 제3 표면(318A) 상에 형성되고 PMIC 다이(118)가 패키지 기판(304)의 제2 표면(304B)에 기계적으로 그리고 전기적으로 커플링될 때 PMIC 다이(118)를 수용하도록 구성되는 리세스부(recessed portion)(322)를 포함한다. 일부 상황들에서, PMIC 다이(118)는 리세스부(322)에 매달려 있고, 즉 에어 갭에 의해 리세스부(322)의 바닥 표면으로부터 분리된다. 대안적으로, 일부 상황들에서, PMIC 다이(118)는 직접 또는 중간 층(예컨대, 접착제 층, 열 확산기 층, 또는 접착제 및 열 확산기 둘 모두인 층)을 통해 리세스부(322)의 바닥 표면과 접촉한다.
일부 구현들에서, 반도체 디바이스(300)는 하나 이상의 별개의 전자 모듈들(330)(예컨대, 저항기, 커패시터, 인덕터, 트랜지스터들, 및 로직 칩)을 추가로 포함한다. 별개의 전자 모듈들(330)은 SoC 다이(202)의 입력/출력 인터페이스 회로에서 전기적으로 커플링되어 SoC 다이(202)에 대한 입력/출력 커플링을 제어할 수 있다. 선택적으로, 별개의 전자 모듈들(330)의 서브세트(예컨대, 컴포넌트들(330A))가 패키지 기판(304)의 제1 표면(304A) 상에 배치된다. 각각의 컴포넌트(330A)는 커버(314) 내에 포함되거나 또는 커버(314) 외부에 위치될 수 있다. 선택적으로, 별개의 전자 모듈들(330)의 서브세트(예컨대, 컴포넌트들(330B))가 패키지 기판(304)의 제2 표면(304B)에 기계적으로 커플링된다. 각자의 컴포넌트(330B)가 낮은 프로파일을 갖는 경우(예컨대, 전기 커넥터들(320)의 길이보다 더 얇음), 컴포넌트(330B)는 패키지 기판(304)의 제2 표면(304B)과 소켓 기판(318)의 제3 표면(318A) 사이의 갭에 끼워질 수 있다. 그렇지 않고, 컴포넌트(330B)가 낮은 프로파일을 갖지 않는 경우(예컨대, 전기 커넥터들(320)의 길이보다 더 두꺼움), 각자의 컴포넌트(330B)는 소켓 기판(318)의 리세스부(322)에 의해 수용되고 PMIC 다이(118)에 인접하게 배치될 수 있다.
SoC 다이(202) 및 PMIC 다이(118)는 반도체 디바이스(300)에 수직으로 배열된다. SoC 다이(202)의 전력 연결부들(312) 및 PMIC 다이(118)의 DC 연결부들(308)은 서로 근접하게 정렬되고 포지셔닝되고, 그에 의해 SoC 다이(202)에 레일 전압을 제공하는 각각의 전력 레일에 커플링된 기생 저항 및 커패시턴스를 감소시킨다. 일부 구현들에서, 복수의 PMIC 다이들(118)이 소켓 기판(318)의 리세스부(322)에 배치되고 패키지 기판(304)의 제1 표면(304A) 상에 배치된 하나 이상의 SoC 다이들(202)에 전기적으로 커플링될 수 있음에 유의한다. 예를 들어, 2개의 PMIC 다이(118)가 소켓 기판(318)의 리세스부(322)에 배치되어 집합적으로 4개의 SoC 다이들(202)에 전력을 공급한다. SoC 다이들(202) 중 하나는 선택적으로 마이크로프로세서 또는 CPU 코어 또는 마이크로프로세서 또는 CPU 코어들의 클러스터에 대응한다.
추가적으로, 본 출원의 일부 구현들에서, PMIC 다이(118)는 상이한 유형들의 SoC 다이들(202)을 구동하기 위해 제어 신호들에 의해 구성가능한 필드 프로그래밍가능 어레이의 전압 조정기들을 포함한다. 일부 상황들에서, 동일한 PMIC 다이(118), 패키지 기판(304), 및 소켓 기판(318)이 상이한 유형들의 SoC 다이들(202)을 지지하는 데 사용된다. 소켓 기판(318) 상에 형성된 리세스부(322)는 동일한 PMIC 다이(118)를 수용하기 위한 고정된 크기를 갖고, 패키지 기판(304)의 본체를 관통하는 제1 비아 인터커넥트들(306)은 고정된 위치들을 갖는다. 대안적으로, 일부 상황들에서, 패키지 기판(304) 및 소켓 기판(318)의 풋프린트 크기들이 상이한 유형들의 SoC 다이들에 대해 다양하지만, 동일한 PMIC 다이(118)는 리세스부(322) 및 패키지 기판(304)의 제1 비아 인터커넥트들(306)이 변경되지 않은 상태로 유지되게 하고, 그에 의해 각각의 개별 유형의 SoC 다이(202)에 대한 전체 패키지 및 PMIC 다이(118)를 맞춤 설계하는 것을 회피한다. 이와 같이, PMIC 다이(118)에의 필드 프로그래밍가능 어레이의 전압 조정기들의 적용은 어셈블리 프로세스를 단순화하고 반도체 디바이스(300)의 비용 효율을 향상시킨다.
도 4는 일부 구현들에 따른, 복수의 분산 전력 센서들(402) 및 전력 관리 엔진(210)을 포함하는 전자 디바이스의 프로세서 시스템(400)의 블록도이다. 프로세서 시스템(400)은 적어도 SoC(102) 및 전력 관리 엔진(210)을 포함한다. SoC(102)는 적어도 하나 이상의 프로세싱 클러스터들(202), 시스템 캐시(208), 및 하나 이상의 PCI(Peripheral Component Interconnect)들 및 소켓-투-소켓 제어기(404)를 갖는다. SoC(102)는 PMIC(118)에 의해 전력을 공급받는 하나 이상의 전력 레일들에 의해 전력을 공급받는다. SoC(102)의 소비 전력들은 전력 센서들(402)에 의해 직접 모니터링되고 전력 관리 엔진(210)에 보고될 수 있다.
SoC(102)는 선택적으로, 프로세싱 클러스터들(202) 외부의 메모리(104), SoC(102)와 선택적으로 통합되는 PMIC(118), 시스템 제어, 관리성 및 디버그(control, manageability and debug, CMD) 컴포넌트, 보안 프로세서, 및 입력/출력(IO) 제어기(106)를 포함하지만 이에 제한되지 않는 하나 이상의 추가적인 컴포넌트들에 커플링된다. 일부 구현들에서, 프로세서 시스템(400)의 이러한 컴포넌트들은 회로 보드 상에 장착된다. 프로세서 시스템(400) 내의 이러한 컴포넌트들은 또한 PMIC(118)에 의해 제공되는 복수의 전력 레일들에 의해 전력을 공급받는다. 구체적으로, PMIC(118)는 하나 이상의 입력 공급 전압을 수신하고, SoC(102), 메모리(104), PMIC(118), PCI들(404), 및 프로세서 시스템(400) 내의 임의의 다른 컴포넌트들의 복수의 전력 레일들을 구동하기 위한 복수의 전력 공급 전압들을 생성한다. 이와 같이, 전력 관리 엔진(210)은 PMIC(118)에 의해 구동되는 전력 레일들로부터 직접 프로세서 시스템(400)의 컴포넌트들의 소비 전력들을 모니터링할 수 있다.
복수의 전력 센서들(402)은 프로세서 시스템(400)의 서브세트 상에, 즉 SoC(102), 메모리(104), PMIC(118), PCI들(404), 시스템 CMD 컴포넌트, 보안 프로세서, IO 제어기(106) 등 중 하나 이상 상에 분산된다. 일부 구현들에서, 전력 센서들(402)은 활동 모니터 유닛(activity monitor unit, AMU)들(406)(원격측정 소스(telemetry source)들로도 불림)의 세트 및 온도 센서들(408)의 세트를 포함한다. AMU들(406)은 상이한 전력 레일들과 연관된 소비 전력들, 전류 값들, 또는 둘 모두를 측정하도록 구성된다. 일부 실시 형태들에서, AMU들(406)은 프로세서 시스템(400)의 대응하는 서브세트의 활동 레벨들을 측정하도록 구성되고, 활동 레벨들은 프로세서 시스템(400)의 대응하는 서브세트의 소비 전력들 및/또는 전류 값들을 추정하는 데 사용된다. 온도 센서들(408)은 온도 센서들이 배치되는 도메인들에서 로컬로 온도 값들을 측정하도록 구성된다. 예를 들어, 도 4에서, SoC(102)는 3개의 프로세싱 클러스터들(202A, 202B, 202C), 시스템 캐시(208), 및 PCI 또는 소켓-투-소켓 제어기(404)를 포함한다. 프로세싱 클러스터들(202), 시스템 캐시(208), 및 PCI 또는 소켓-투-소켓 제어기(404) 각각은, 각자의 컴포넌트의 하나 이상의 전력 레일들의 소비 전력들 및/또는 전류 값들을 측정하도록 구성된 하나 이상의 AMU들(406) 및 각자의 컴포넌트의 온도 값들을 측정하도록 구성된 하나 이상의 온도 센서들(408)에 커플링된다.
일부 구현들에서, AMU들(406)의 서브세트는 서로 인접한다. AMU들(406)의 서브세트 중 하나는 지역 AMU(regional AMU, R-AMU)(406)이지만, 서브세트 내의 다른 AMU들(406)은 로컬 AMU(406)이다. 지역 AMU(406)는 로컬 AMU들(406)로부터 전력 샘플들을 수집하고, 선택적으로, 수집된 전력 샘플들을 사전프로세싱한다. 예를 들어, SoC(102)에서, 제2 프로세싱 클러스터(202B)의 전력 레일에 커플링된 AMU(406B)는 SoC(102) 상에 분산되는 AMU들(406A 내지 406E)의 서브세트의 지역 AMU로서 작용한다. AMU들(406A 내지 406E)의 서브세트로부터 수집된 전력 샘플들은 선택적으로, 지역 AMU(406B)에 의해 통합되고 전력 관리 엔진(210)으로 전송된다. 일부 구현들에서, 온도 센서들(408)의 서브세트는 서로 인접하고 온도 센서들(408) 중 하나의 제어를 받으며, 온도 센서들(408)의 서브세트 중 하나는 온도 센서 허브(408)이다. 예를 들어, SoC(102)에서, 제3 프로세싱 클러스터(202C)에 커플링된 온도 센서(408C)는 SoC(102) 상에 분산되는 온도 센서들(408A 내지 408E)의 서브세트의 온도 센서 허브로서 작용한다. 온도 센서들(408A 내지 408E)의 서브세트로부터 수집된 온도 샘플들은 선택적으로, 온도 센서 허브(408C)에 의해 통합되고 전력 관리 엔진(210)으로 전송된다. 일부 상황들에서, 온도 센서 허브(408C)는 또한, 허브(408C) 주위의 AMU들(406)로부터 전력 샘플들을 수집 및/또는 통합하고, 지역 AMU(406B)는 또한, 지역 AMU(406B) 주위의 온도 센서들(408)로부터 전력 샘플들을 수집 및/또는 통합한다.
일부 구현들에서, 각각의 프로세싱 클러스터(202)는 복수의 프로세서들(204A 내지 204D)(프로세서 코어들(204)로도 불림) 및 클러스터 캐시(206)를 포함한다. 다수의 온도 센서들(408)이 프로세서들(204) 및 클러스터 캐시(206) 상에 분산된다. 예를 들어, 각각의 프로세서(204)는 2개의 온도 센서들(408)을 갖고, 각각의 클러스터 캐시(206)는 단일 온도 센서(408)를 갖는다. 온도 센서 허브(408H)는 2개의 제어기들을 포함하고, 전체 프로세싱 클러스터(202)의 온도 센서들(408)에 의해 수집된 온도 샘플들을 통합하도록 구성된다.
일부 구현들에서, AMU들(406) 또는 온도 센서들(408)에 의해 측정된 전력 샘플들(예컨대, 소비 전력, 전류 값들, 및 온도 값들)은 대응하는 프로세서(204) 또는 프로세싱 클러스터(202)의 소비 전력 또는 전류 레벨을 제어하기 위해 하드웨어 레벨에서 로컬로 적용된다. 예를 들어, 전력 샘플들은 전류 스로틀링 임계치(I TRT )와 직접 비교되어, 프로세서(204)의 동작을 디스에이블하거나 프로세서(204)의 전력 성능 상태(power performance state)(P-상태)를 변경한다(예컨대, 상이한 사전정의된 P-상태들의 세트 간에 스위칭함). 전력 샘플들은 평균 전력 샘플을 획득하기 위해 일정 시간 윈도우에 걸쳐 또는 2개 이상의 별개의 AMU들에 걸쳐 평균화될 수 있다. 평균 전력 샘플은 전류 스로틀 임계치(I TRT )와 비교되어, 프로세서(204)의 동작을 디스에이블하거나 프로세서(204)의 P-상태를 변경한다. 그러한 로컬 하드웨어 레벨 전력 제어 동작은, 전류 스로틀 임계치(I TRT )가 전력 관리 엔진에 의해 사전결정될 수 있는 것을 제외하고는, 개별 프로세서들(204), 프로세서 클러스터들(202), 및 SoC(102) 상에서 구현된다.
전력 관리 엔진(210)에 커플링된 컴포넌트들은 복수의 전력 도메인들로 파티셔닝된다. 예를 들어, SoC(102), 단일 프로세싱 클러스터(202), 또는 프로세서(204)는 도메인들 중 하나이다. 각각의 전력 도메인은 하나 이상의 AMU들(406) 및 하나 이상의 온도 센서들(408)을 포함하는 각자의 전력 센서들(402)의 세트를 갖는다. 일부 구현들에서, 하나 이상의 AMU들(406) 및 하나 이상의 온도 센서들(408) 둘 모두는 각자의 전력 도메인에 물리적으로 위치된다. 일부 구현들에서, 하나 이상의 온도 센서들(408)은 각자의 전력 도메인에 물리적으로 위치되는 한편, 하나 이상의 AMU들(406)은 각자의 전력 도메인에 전력 레일들을 제공하도록 구성된 PMIC(118)의 일부분에 위치되고 PMIC(118) 상의 전력 레일들에 전기적으로 커플링된다. 일부 구현들에서, 각각의 전력 도메인으로부터 수집된 전력 샘플들은 글로벌 풀링 빈도에 따라 지역 AMU(406) 또는 온도 센서 허브(408)에 의해 전력 관리 엔진(210)으로 풀링 및 전송된다.
전력 관리 엔진(210)은 어그리게이터(aggregator)(410) 및 스로틀 정책 제어기(412)를 포함한다. 어그리게이터(410)는 분산 전력 센서들(402)에 의해 수집된 전력 샘플들 또는 수집된 전력 샘플들로부터 통합된 전력 샘플들을 수집하도록 구성된다. 일부 구현들에서, 어그리게이터(410)는 전체 프로세서 시스템(400) 또는 다수의 전력 도메인들의 조합의 전체 전력 성능을 나타내는 시스템 전력 프로파일을 생성한다. 시스템 전력 프로파일의 일례는 전체 SoC(102)의 평균 온도의 시간적 변화를 나타내는 시스템 온도 프로파일(예컨대, 도 6의 곡선(602))이다. 일부 구현들에서, 어그리게이터(410)는 개별 도메인의 로컬 전력 성능을 각각 나타내는 하나 이상의 로컬 전력 프로파일들을 생성한다. 예를 들어, 프로세서(204)의 로컬 온도 프로파일(예컨대, 도 6의 곡선(606))은 도 4의 프로세서(204A)의 모든 온도 센서들(408)로부터 결정된 평균 온도의 시간적 변화를 나타낸다. 일부 구현들에서, 어그리게이터(410)는 복수의 도메인들에 대한 복수의 전력 스로틀링 임계치들을 정의 및/또는 조정한다. 스로틀 정책 제어기(412)는 전력 스로틀링 임계치들 각각을 각자의 도메인 또는 각자의 도메인들의 서브세트에 제공하여 각자의 도메인 또는 도메인들의 서브세트의 소비 전력을 제어하도록 구성된다.
일부 구현들에서, 각각의 프로세서 클러스터(202)는 하나 이상의 프로세서들(204), 클러스터 캐시(206), 및 복수의 전력 센서들(402)에 커플링된 글로벌 모듈(414)을 포함한다. 글로벌 모듈(414)은 전력 센서들(402)에 의해 측정된 전력 샘플들 및/또는 온도 센서 허브(408H) 또는 지역 AMU(406)에 의해 통합된 전력 샘플들을 수집하고, 그리고 수집된 전력 샘플들을 전력 관리 엔진(210)의 어그리게이터(410)로 전송하도록 구성된다. 글로벌 모듈(414)은 또한, 전력 관리 엔진(210)의 스로틀 정책 제어기(412)로부터 복수의 전력 스로틀링 임계치들 및 제어 신호들을 수신하고, 그리고 아키텍처 스로틀링, 클록 스로틀링, 성능 포인트 스로틀링, 및 상이한 사전정의된 P-상태들의 활성화를 포함하는 로컬 전력 제어 동작들을 인에이블하도록 구성된다. 일부 실시 형태들에서, 각각의 도메인에서의 스로틀링 액션들은 글로벌 전력 제어 동작 동안 전력 및 디버그 프로세서(Power and Debug Processor, PDP)(416)에 의해 그리고 로컬 전력 제어 동작 동안 글로벌 모듈(414)에 의해 제어됨에 유의한다.
명확화를 위해, 일부 실시 형태들에서, 글로벌 전력 제어 동작들은 전체 SoC(102)에 의해 또는 프로세서 클러스터(202)에 의해 구현되고, 전력 관리 엔진(210)을 관여시킨다. 로컬 전력 제어 동작들은 전력 관리 엔진(210)을 관여시키지 않으면서, 각각의 프로세서 클러스터(202) 또는 프로세싱 클러스터(202)의 각각의 프로세서(102)에서 로컬로 구현된다. 대안적으로, 지역 전력 제어 동작은 인접한 전력 도메인들(예컨대, 도 4의 각각의 프로세서 클러스터(202))의 서브세트(전부가 아님)와 연관된 전력 제어 동작들을 지칭하고, 로컬 전력 제어 동작들은 각각의 개별 도메인(예컨대, 프로세서(102))에 제한된다.
도 5a 및 도 5b는, 각각, 일부 구현들에 따른, 펌웨어 레벨 및 하드웨어 레벨에서 SoC 기반 전자 디바이스의 전력을 관리하도록 구성된 전력 관리 시스템들(500, 520)의 블록도들이다. 도 5c는 일부 구현들에 따른, SoC 기반 전자 디바이스(200)의 전력이 펌웨어 레벨 및 하드웨어 레벨 둘 모두에서 관리되는 포괄적인 전력 관리 스킴(560)을 예시한다. 도 2를 참조하여 위에서 설명된 바와 같이, 전력 관리 엔진(210)은 펌웨어 레벨 및 하드웨어 레벨 전력 관리 태스크들 둘 모두를 인에이블하도록 구성된다. 구체적으로, 전력 관리 엔진(210)은 복수의 전력 도메인들(502)로부터 복수의 전력 샘플들을 수집하고 개별 전력 도메인들(502)에 대한 하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하고, 각각의 전력 프로파일은 선택적으로, 전체 전자 디바이스(200) 또는 다수의 도메인들의 조합(예컨대, 프로세서 클러스터(202), SoC(102))의 시스템 전력 프로파일 또는 개별 전력 도메인(예컨대, 프로세서(204))의 로컬 전력 프로파일이다. 복수의 전력 샘플들은 도메인들에 걸쳐 분산된 복수의 전력 센서들(402)에 의해 측정되거나, 전력 센서들(402)에 의해 측정된 원시 전력 샘플로부터 사전프로세싱된다.
펌웨어 레벨에서, 전력 관리 엔진(210)은 하나 이상의 전력 프로파일들에 기초하여, 예컨대, 복수의 전력 도메인들(502) 간에 전력 버짓들(504)을 분배하고(562) 그리고 전력 버짓들에 따라 복수의 전력 도메인들(502)의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현한다. 전력 관리 물리적 제어 루프들(즉, 긴 제어 루프들)의 시간적 길이(Temporal length)들(506)은 수십 나노초 내지 수 밀리초의 범위이다. 통상적인 시간적 길이들(506)은 100μs 내지 1ms의 범위에 있다. 일부 구현들에서, 글로벌 전력 제어 동작은 전력 관리 엔진(210) 및 각각의 도메인의 전력 및 디버그 프로세서(PDP)(416)에 의해 공동으로 구현된다. 글로벌 전력 제어 동작은 제1 루프 주기(508)에 따라 주기적으로, 예컨대 PDP(416)와 연관된 이벤트에 대해 100μs마다 또는 더 빨리 구현된다. 일부 구현들에서, 글로벌 전력 제어 동작은 복수의 프로세서들 각각에 대해 복수의 사전정의된 전력 성능 상태들(P-상태들)(510) 중 하나를 선택하는 것을 포함한다. P-상태들 각각은 프로세서들의 사전정의된 전력 및 성능 설정들의 세트에 대응한다. 전력 버짓들은 각각의 프로세서의 선택된 P-상태(510)의 사전정의된 전력 및 성능 설정들에 따라 복수의 도메인들 간에 분배된다. 일부 구현들에서, 글로벌 전력 제어 동작은 개별 도메인들에 대해 어떤 스로틀링 동작들을 취할지를 결정하는 것을 포함한다. 전력 관리 엔진(210)은 복수의 전력 스로틀링 임계치들(512)을 상이한 전력 도메인들(502)에 제공하고 도메인들이 그러한 스로틀링 동작들을 구현하는 것을 인에이블한다.
일부 구현들에서, 글로벌 전력 제어 동작은 로컬 이벤트가 특정 도메인의 로컬 전력 프로파일에 발생하는 것에 응답하여 구현됨에 유의한다. 이벤트는, 글로벌 전력 제어 동작과 연관된 응답 시간이 그 이벤트를 해결하기에 충분할 정도로 그렇게 중요하지 않을 수 있다. 예를 들어, 프로세서 클러스터(202)의 로컬 전력 프로파일에 발생하는 이벤트는 프로세서 클러스터(202)의 PDP(416)와 연관되고, 100μs에 대응하는 루프 주기로 구현되는 글로벌 전력 제어 동작에 의해 해결될 수 있다.
하드웨어 레벨에서, 개별 도메인들(502)은 전력 관리 엔진(210)에 의해 설정된 복수의 전력 스로틀링 임계치들(512)을 사전로딩하고(564), 실시간으로 확장된 펌웨어 레벨 동작들을 수반하지 않으면서 로컬 전력 제어 동작들(예컨대, 스로틀링 액션들)을 구현한다. 도 5c를 참조하면, 모니터링되고 제어된 상이한 전력 도메인들(502)은 2개의 프로세싱 클러스터들(202A, 202B), SoC(102)의 로직 부분, 메모리(104), 및 소켓-투-소켓 커넥터(404)(보다 구체적으로는, 커넥터(404)의 전력 레일 VDD)를 포함한다. 전력 관리 엔진(210) 또는 개별 전력 도메인(502)은 로컬 전력 프로파일을 모니터링하고, 연관된 전력 스로틀링 임계치(512)에 기초하여 개별 전력 도메인(502)(예컨대, 메모리(104), PMIC(118), 프로세싱 클러스터(202-M))에 대해 제2 레이트들을 갖는 하나 이상의 로컬 전력 제어 동작들을 인에이블한다. 예를 들어, 프로세싱 클러스터(202)의 전류는 사전정의된 짧은 버스트 시간(t BS )(예컨대, 20μs)보다 긴 지속기간 동안 사전정의된 높은 피크 전류(I MAXH )(예컨대, 1A)를 초과하도록 모니터링된다. 프로세싱 클러스터(202)의 전류의 감소를 요청하기 위해 전류 제어 신호가 개별 전력 도메인(502) 또는 PMIC(118)에 대해 생성된다. 전력 스로틀링 임계치들(512)(예컨대, I MAXH )은 로컬 전력 제어 동작들에 대해 사전결정되고 개별 도메인들(502)에 직접 적용될 수 있다. 어떠한 펌웨어 레벨 전력 버짓 재분배도 실시간으로 필요하지 않다. 일례에서, 로컬 전력 제어 동작은 제2 루프 주기(514)에 따라 주기적으로, 예컨대 50μs마다 구현되고, 대응하는 전력 관리 제어 루프들의 시간적 길이들(516)은 대략 300μs이다. 이와 같이, 개별 도메인들의 로컬 전력 제어 동작들은 펌웨어 레벨에서 구현되는 글로벌 전력 제어 동작보다 하드웨어 레벨에서 보다 즉각적으로 응답한다.
일부 구현들에서, 각각의 도메인(502)에 대해, 로컬 전력 제어 동작은 아키텍처 스로틀링, 전력 레일 스케일링, 및 클록 스로틀링으로부터 선택된 스로틀링 액션을 포함한다. 아키텍처 스로틀링은, DRAM을 포함한 각자의 도메인에 대한 트래픽을 주기적으로 차단하거나 프로세서를 포함한 각자의 도메인에서의 높은 전류 스파이크들을 억제하기 위해 적용된다. 클록 스로틀링은 각자의 도메인의 클록 주파수를 감소시키기 위해 적용된다. 성능 포인트 스로틀링은 각자의 도메인의 클록 주파수 및 전력 공급 전압들을 공동으로 조정하기 위해 적용된다. 일부 상황들에서, 각자의 도메인의 각자의 전력 레일들에 커플링된 전압 조정기들은 각자의 전력 레일들에 주입되는 전력 공급 전압들 및 연관된 전류를 변경하도록 조정된다.
도 5c를 참조하면, 일부 구현들에서, 글로벌 전력 제어 동작 및 로컬 전력 제어 동작들은 공동으로 적용되고 상이한 상황들에서 상이한 우선순위들에 대응한다. 글로벌 전력 제어 동작은 통상적으로 총 버짓 계산, 서브도메인 버짓 파티션, 또는 버짓 재할당을 요구한다. 일부 상황들에서, 복수의 전력 도메인들(502)의 동작들이 전력 버짓들에 따라 인에이블될 때, 도메인 특정 제어 루프들에는 선택적으로, 긴 제어 루프들 및 복잡한 계산을 갖는 상위 레벨 알고리즘들이 적용된다. 전력 관리 엔진(210)은 펌웨어 레벨에서 도메인 특정 제어 루프들을 제어하는 데 관여된다. 이는 또한, 글로벌 전력 제어 동작의 제1 레이트가 로컬 전력 제어 동작들의 제2 레이트 미만인 이유를 설명한다. 대안적으로, 일부 상황들에서, 복수의 전력 도메인들(502)의 동작들이 전력 버짓들에 따라 인에이블될 때, 로컬 전력 제어 동작들에서 적용된 전력 스로틀링 임계치들(512)이 적용되거나, 또는 사전정의된 P-상태들(510)이 사전정의된 동작 조건 정책들에 따라 로딩되는데, 이는 글로벌 전력 제어 동작의 제1 레이트를 효과적으로 향상시킬 수 있다.
일부 구현들에서, 복수의 전력 샘플들이 로컬 샘플링 레이트(예컨대, 1μs마다 1 샘플)에 따라 복수의 도메인들(502)로부터 수집된다. 각각의 로컬 전력 프로파일은 로컬 전력 샘플들의 시간적 시퀀스를 포함하고, 각각의 로컬 전력 샘플은 풀링 레이트에 따라 각자의 도메인의 각자의 수집된 전력 샘플들의 서브세트로부터 조합된다. 예를 들어, 각각의 로컬 전력 샘플은, 프로세싱 프로세서(204)의 전력 레일의 전류에 대해 측정되고 사전정의된 시간적 길이(예컨대, 10μs)를 갖는 일정 시간 윈도우에 걸쳐 평균화된 각자의 전류 샘플들의 서브세트의 평균이다. 그러한 데이터 수집 및 평균화는, 하드웨어 레벨에서, 즉 개별 도메인들(502)에 의해, 각각의 로컬 전력 프로파일의 로컬 전력 샘플들이 전력 관리 엔진(210)에 보고되기 전에 또는 후에, 구현된다. 따라서, 일부 구현들에서, 전력 관리 엔진(210)은 사전정의된 시간적 길이를 초과하지 않는 사전정의된 제어 빈도의 주기를 갖는다. 전력 스로틀링 임계치들과의 비교들에 기초하는 로컬 전력 제어 동작들은 로컬 제어 빈도들을 갖고, 로컬 제어 빈도들은 시간 윈도우의 사전정의된 시간적 길이를 초과하지 않는다. 전력 관리 엔진(210)은, 로컬 전력 제어 동작에서 사용되는 전력 스로틀링 임계치들(512)이 펌웨어 레벨에서 전력 관리 엔진(210)에 의해 사전결정되는 것을 제외하고는, 개별 전력 도메인들에 대한 로컬 전력 값 평가 및 전력 제어의 연속 주기적 루프들에 직접 관여하지 않는다.
일부 상황들에서, 펌웨어의 긴 제어 루프 또는 하드웨어의 짧은 제어 루프의 루프 제어 시간 상수는 동적으로 조정된다. 예를 들어, SoC(102) 온도가 최대 온도(T MAX )에 가깝게 상승하였을 때, 루프 제어 시간 상수가 감소되어 면밀한 모니터링(close monitoring)을 인에이블한다. 루프 제어 시간 상수가 글로벌 전력 제어 동작에 대해 너무 짧은 경우, 일차 제어가 개별 도메인들에 의한 로컬 전력 제어 동작들로 전달된다. 예시적인 온도 제어 프로세스에 대한 더 많은 세부사항들이 도 6을 참조하여 이하에 설명된다. 일부 상황들에서, 전력 관리 엔진(210)은 먼저 편위(excursion)들을 캡처하기 위해 개별 도메인들(502)의 전력 스로틀링 임계치들(512)을 감소시킨다. 일부 상황들에서, 전력 제어 윈도우들은 더 엄격한 한계 시행을 대신해서 덜 관대한 기회주의적 성능 부스트들을 허용하도록 짧아진다. 일부 상황들에서, 전력 관리 엔진(210)은 스로틀 레벨들 및 이벤트 모니터링을 사용하여 개별 도메인들(502)에 의한 과도한 스로틀링 활성화를 검출하고 그의 권한 하에서 전력 스로틀링 임계치들을 수정하여 보다 효율적인 동작들을 획득한다.
전력 관리 엔진(210)에 의한 펌웨어 레벨 전력 관리 제어(도 5a)는 긴 제어 루프에 대응한다. 개별 도메인들에 의한 하드웨어 레벨 전력 관리 제어(도 5b)는 짧은 제어 루프에 대응한다. 긴 제어 루프에서, 하드웨어 레벨 스로틀링 메커니즘들(예컨대, 로컬 전력 제어 동작들에 의해 구현됨)은 펌웨어 레벨 전력 관리 제어를 위한 백업 및 폴백으로서 작용하고, 그에 의해 특히, 전력 관리 엔진(210)이 비트(beat)를 건너뛰었을 때 또는 긴 제어 루프가 에러 크기를 적절히 식별하지 않았을 때 복수의 도메인들(502)이 각자의 전력 한계들을 준수하는 것을 보장한다. 짧은 제어 루프에서, 하드웨어 레벨 스로틀링 메커니즘들(예컨대, 로컬 전력 제어 동작들에 의해 구현됨)은 일차 제어 에이전트들로서 작용하고 짧은 시간 지속기간 루프 시행 및 빠른 응답들을 제공한다. 예를 들어, 다중-레벨 스로틀링 메커니즘이 히스테리시스의 레벨을 구현하기 위해 적용되고 펌웨어 레벨 전력 관리 제어를 보완한다.
일부 상황들에서, 전력 관리는 주어진 세트의 외부 제약들 하에서, 주어진 세트의 운영 체제(OS) 성능 지시들에 기초하여, 착신 명령 스트림에 대한 전자 디바이스의 성능을 최대화하는 임무를 맡고 있다. 착신 명령 스트림은 도메인마다, 프로세싱 코어들(204) 간에, 그리고 심지어 하나의 프로그램 페이즈로부터 다른 프로그램 페이즈로의 실행 동안 크게 달라진다. 성능 지시들은 OS 성능 레벨 요건들 및 기대를 만족한다. 일부 경우들에서, 성능 지시들은 또한, 각각의 프로세싱 코어(204) 및/또는 클러스터(202)에 대한 성능 및 전력 선호도들을 만족한다. 제약들은 상이한 디바이스들 및 도메인들(예컨대, SoC, 메모리(104)) 간에 다를 수 있다(예컨대, 상이한 시간 윈도우들에 대응함). 특히, 일례에서, 프로세싱 코어 제약은 전력 관리 엔진(210)을 통해 펌웨어 레벨에서 구현하기에 너무 짧은 시간 윈도우를 가지며, 시간 윈도우는 대응하는 프로세싱 코어에 직접 프로세싱 코어 제약을 적용하는 것에 의해서만 달성될 수 있다. 이와 같이, SoC 기반 전자 디바이스의 전력 관리는 하드웨어 및 펌웨어 정책들, 물리적 제약들의 추적, OS 요건들 및 지시들, 및 명령 스트림 특성들의 조합을 요구하여, 성능 및 전력 트레이드오프들을 최적화한다.
일부 구현들에서, 운영 체제는 SoC 성능 변경들을 요청하기 위해 CPPC(collaborative processor performance control) 인프라구조를 사용한다. 예를 들어, SoC(102)의 프로세서들(204) 및 운영 체제는 상이한 p-상태들(전력 성능 상태들)을 통해 소비 전력을 최적화할 수 있고, 프로세서들(204)은 상이한 주파수들에서 동작된다. 프로세서(204)의 고성능 모드는, 이상적인 조건들을 가정하여, 프로세서(204)가 도달할 수 있는 절대 최대 성능을 반영한다. 이러한 성능 레벨은 긴 지속기간들 동안 지속되지 않고, 다른 프로세서들(204) 또는 메모리(104)를 특정 상태(예컨대, 유휴 상태)로 강제하는 것에 의해서만 달성가능할 수 있다. 프로세서(204)의 공칭 성능은, 이상적인 동작 조건들을 가정하여, 프로세서(204)의 최대 지속된 성능 레벨을 반영한다. 외부 제약(전력, 열 등)의 부재 시에, 이는 SoC 기반 전자 디바이스가 연속적으로 유지하는 성능 레벨이다. 일부 구현들에서, 모든 프로세서들(204)은 그들의 공칭 성능 모드를 동시에 지속한다. 프로세서(204)의 보장된 성능 모드는 모든 알려진 외부 제약들(전력 버짓화, 열 제약들, DC 또는 AC 전원 등)을 고려하여, 프로세서(204)의 현재 최대 지속된 성능 레벨을 반영한다. 일부 구현들에서, 모든 프로세서들은 그들의 보장된 성능 레벨들을 동시에 지속한다. 보장된 성능 레벨은 가장 낮은 성능 레벨과 공칭 성능 모드에 대응하는 공칭 성능 레벨(이를 포함함) 사이의 성능 범위에 속하도록 요구된다. 일부 상황들에서, 보장된 성능 모드는 열 및 전력 제약들을 반영하기 위해 초당 1회 업데이트된다.
프로세서 시스템은 시간의 경과에 따라 전력 관리 엔진(210)에 의해 제어되는 스로틀링 액션들을 모니터링하고, 그리고 실시간으로 전력 관리 엔진(210)과 협력하여 전체 프로세서 시스템의 성능을 최대화하면서 그의 전력 도메인들의 온도/전력 사용을 사전정의된 동작 범위들 내에 유지하도록 구성된다. 일부 구현들에서, 프로세서 시스템이, 전력 관리 엔진(210)이 (예컨대, 일정 시간 지속기간에 걸쳐 사전정의된 비율(percentage)을 초과하여) 과도한 스로틀링 액션들을 취하고 있다고 결정하는 경우, 프로세서 시스템은 상이한 클러스터들(202) 및/또는 프로세서들(204)에 프로세스들을 재할당하거나, 또는 추가적인 클러스터들(202) 및/또는 SOC들(102)을 가동시켜(bring on-line) 글로벌하게 과도한 워크로드들을 감소시킬 수 있다. 예를 들어, 일부 구현들에서, 그러한 상황은, 프로세싱 클러스터들(202)의 상당 비율이 일관하여 사전정의된 임계 온도(T SET ) 초과인 측정된 온도를 갖는 하나 이상의 도메인들을 갖는 경우에 존재하는 것으로 결정된다.
도 6은 일부 구현들에 따른, SoC(102)를 포함하는 전자 디바이스의 디바이스 온도들의 시간도(600)이다. 전자 디바이스는 SoC(102)의 시스템 온도 프로파일들(602, 604) 및 프로세서(204)의 로컬 온도 프로파일(606)을 모니터링하도록 구성된다. 상이한 조건들 하에서 SoC(102) 또는 프로세서(204)의 소비 전력들 및 열 응답들을 조정하기 위해 글로벌 및 로컬 전력 제어 동작들이 적용된다. SoC(102)가 사전정의된 동작 주파수(예컨대, 3.6 ㎓)에서 동작할 때, SoC(102)의 온도는 제1 임계 온도(T SET )(예컨대, 98 내지 99℃)에서 안정화하도록 구성된다. 일부 구현들에서, 온도 기반 전력 제어가 적용되어 사전정의된 동작 주파수에 가까운 안정된 성능을 달성한다.
일부 상황들에서(예컨대, 프로파일(602)과 연관됨), SoC(102)의 프로세서들(204)은 짧은 시간의 지속기간(duration of time)들 동안 전력 한계들을 초과하도록 허용된다. PMIC(118)는 사전정의된 시간 윈도우 동안의 공칭 전류(예컨대, I CC,nom )를 향상시킬 수 있다(예컨대, 300 내지 400μs 동안 1.35 I CC,nom , 1ms 동안 1.2 I CC,nom ). 최대 전류 공차(I CC,MAX )는 사전정의된 시간 윈도우 내에서 이러한 향상된 전류를 제한하는 것으로부터 디스에이블된다. SoC(102)의 온도는, 로컬 전력 제어 동작(610)이 온도 증가 레이트를 감소시키기 위해 적용될 때까지 최대 온도(T MAX )를 향해 천천히 증가한다. 일부 상황들(예컨대, 프로파일(604)과 연관됨)에서, 명령 시퀀스들의 버스트들은 갑작스런 소비 전력의 증가 및 갑작스런 온도 증가를 발생 및 야기한다. 그러한 명령 시퀀스들의 버스트들은 일정 시간의 지속기간, 예컨대 300 내지 1000μs 내에 정상적으로 안정되고 정상 프로세싱 레벨들로 복귀한다. 온도 또는 전력 증가는 그 시간의 지속기간에 대응하는 사전정의된 윈도우 크기(L W )에 걸쳐 모니터링된다. 온도 또는 전력 증가가 사전정의된 한계를 초과하는 경우, 증가는 과도한 것으로 결정되고, 온도 또는 전력 증가를 억제하기 위해 스로틀링 액션들이 취해진다.
구체적으로, 프로세서 시스템(예컨대, SoC(102))은 하나 이상의 프로세싱 클러스터들(202)을 포함하고, 이들 각각은 하나 이상의 프로세서들(204)을 포함한다. SoC(102)의 프로세서들(204)은 복수의 도메인들(502)과 연관된다. 복수의 전력 샘플들이 복수의 도메인들(502)에 대해 측정된다. 일부 실시 형태들에서, 복수의 전력 샘플들은 로컬 온도 센서 허브(408) 또는 지역 AMU(406)에서 글로벌 풀링 레이트에 따라 평균화된다. 측정된 또는 평균화된 전력 샘플들은 전력 관리 엔진(210)으로 전송된다. 전력 관리 엔진(210)은 시스템 온도 프로파일(602)을 생성하기 위해 복수의 도메인들과 연관된 전력 샘플들을 추가로 프로세싱한다. 시스템 온도 프로파일(602)은 SoC(102)의 온도 레벨을 추적하고, 따라서 시스템 온도 값들의 시간적으로 순서화된 시퀀스를 포함한다.
SoC(102)의 정상 동작 동안, 전력 관리 엔진(210)은 시스템 온도 프로파일(602)이 제1 온도 임계치(T SET ) 이상으로 증가하는지 여부를 결정한다. 시스템 온도 프로파일(602)이 제1 시간(t 1 )에 제1 온도 임계치(T SET ) 이상으로 증가하는 경우, 시스템 온도 프로파일(602)의 온도 값들은 사전정의된 제어 빈도로(예컨대, 480μs 마다) 제2 온도 임계치(T TH ) 또는 최대 온도(T MAX )와 비교된다. 각자의 시스템 온도 값이 제1 온도 임계치(T SET )와 제2 온도 임계치(T TH ) 사이에 있는 경우, 글로벌 전력 제어 동작이 인에이블되어 펌웨어 레벨에서 복수의 도메인들의 전력 버짓들을 결정하고 전력 버짓들에 따라 복수의 도메인들의 동작들을 인에이블한다. 각자의 시스템 온도 값이 제2 온도 임계치(T TH )보다 큰 경우 또는 각자의 시스템 온도 값이 임계 시간의 지속기간(예컨대, 1ms)보다 더 오래 제1 온도 임계치(T SET )보다 큰 경우, 도메인들의 서브세트가 선택되고, 각자의 전력 스로틀링 액션이 하드웨어 레벨에서 도메인들의 서브세트 각각에 적용된다. 이러한 수단에 의해, 각자의 시스템 온도 값이 제2 온도 임계치(T TH )보다 클 때 또는 각자의 시스템 온도 값이 임계 시간의 지속기간(예컨대, 1ms)보다 더 오래 제1 온도 임계치(T SET )보다 큰 경우, 짧은 전력 제어 루프가 하드웨어 레벨에서 적용되어 SoC(102)의 온도 값을 최대 온도(T MAX ) 미만으로 제어한다.
시스템 온도 프로파일(602)에 대해, 2개의 글로벌 전력 제어 동작들(608A, 608B)이 임계 시간의 지속기간(W T )(예컨대, 1μs) 내에 펌웨어 레벨에서 적용된다. 임계 시간의 지속기간(W T )은 SoC(102)의 대응하는 향상된 전류에서 허용되는 가장 긴 시간의 지속기간이다. 임계 시간의 지속기간(W T ) 후에, 로컬 전력 제어 동작들(610)이 2개의 글로벌 전력 제어 동작들(608A, 608B)에 후속하여, 더 빠른 레이트로 SoC(102)의 온도 값을 제어한다. 글로벌 전력 제어 동작들(608A, 608B)은 100μs의 예시적인 반응 시간을 갖고, 로컬 전력 제어 동작들(610)은 20μs의 예시적인 반응 시간을 갖는다. 일부 실시 형태들에서, 시스템 온도 프로파일(602)의 온도 값은 하드 셧다운 온도(T HS )를 넘어 증가하고, 하드 셧다운 동작은 SoC(102)의 상이한 전력 도메인들에 적용되어 SoC(102)를 냉각시킨다.
SoC(102)에서 명령들의 버스트 시에, 시스템 온도 프로파일(602)은 더 큰 온도 증가 레이트를 갖는 대안적인 시스템 온도 프로파일(604)로 변경된다. 일례에서, 시스템 온도 프로파일들(602, 604)은 SoC(102)에 의한 700W 및 900W의 전체 소비 전력들에 각각 대응한다. 사전정의된 윈도우 크기(L W )의 사전정의된 온도 증가 한계(ΔT)는 허용가능한 명령들의 버스트에 대한 상한에 대응한다. 일부 구현들에서, 사전정의된 온도 증가 한계(ΔT)는 프로그래밍가능하다. 사전정의된 온도 증가 한계(ΔT)를 넘으면, 즉각적인 로컬 전력 제어 동작들(예컨대, 스로틀링 액션들)이 적용될 필요가 있다. 구체적으로, 일부 구현들에서, 제1 온도 값(T 1 ) 및 제2 온도 값(T 2 )은 시스템 온도 프로파일(604) 상의 사전정의된 윈도우 크기(L W )를 갖는 시간 윈도우의 시작 및 종료에 각각 대응한다. 제1 온도 값(T 1 )은 선택적으로 제1 임계 온도(T SET )와 동일한 한편, 제2 온도 값(T 2 )은 제2 임계 온도(T TH ) 미만이다. 제1 온도 값(T 1 )과 제2 온도 값(T 2 ) 사이의 온도 차이가 결정되고 사전정의된 온도 증가 한계(ΔT)와 비교되어, 전력 서지(power surge)가 발생하는지 여부를 나타낸다. 온도 차이가 사전정의된 온도 증가 한계(ΔT)를 초과하는 경우, SoC(102)의 도메인들의 서브세트가 선택되고, 각자의 로컬 전력 제어 동작(예컨대, 전력 스로틀링 액션)이 하드웨어 레벨에서 도메인들의 서브세트 각각에 적용된다. 각자의 전력 스로틀링 액션의 예들은 아키텍처 스로틀링, 클록 스로틀링, 및 성능 포인트 스로틀링을 포함한다. 이러한 수단에 의해, 명령들의 버스트가 SoC(102)에서 발생할 때, SoC(102)의 온도 값은 최대 온도(T MAX )를 초과할 수 없고, 로컬 전력 제어 동작이 적용되어 소비 전력을, 예컨대, 900W에서 700W로 떨어뜨린다.
SoC(102)의 정상 동작 및 시퀀스들의 버스트 둘 모두 동안, 로컬 전력 제어 동작들은 전력 버스트들을 다루도록 의도된 짧은 전력 제어 루프에 대응한다. 짧은 전력 제어 루프는, SoC(102)가 제1 임계 온도(T SET )에 도달할 때 제1 시간(t 1 ) 이후 임계 시간의 지속기간(W T )에서 SoC(102)의 온도 값이 최대 온도(T MAX )를 넘어 증가하지 않는 것을 보장한다. 글로벌 전력 제어 동작들은 제1 임계 온도(T SET )에 대응하는 전력 한계에서 평균 전력 레벨을 유지하도록 의도된 긴 전력 제어 루프에 대응한다.
추가적으로, 일부 상황들에서, 명령들의 버스트는 제1 도메인(502)에서의 특정 프로세서(204)에도 발생한다. 제1 도메인(502)의 로컬 전력 프로파일(606)은 제1 도메인(502)에서 수집된 복수의 전력 값들의 제1 서브세트에 기초하여 획득된다. 사전정의된 윈도우 크기(L W )의 사전정의된 온도 증가 한계(ΔT')는 또한, 프로세서(204)의 허용가능한 명령들의 버스트에 대한 상한에 대응한다. 일부 구현들에서, 사전정의된 온도 증가 한계(ΔT')는 프로그래밍가능하다. 사전정의된 온도 증가 한계(ΔT')를 넘으면, 즉각적인 로컬 전력 제어 동작들(예컨대, 스로틀링 액션들)이 제1 도메인에 적용될 필요가 있다. 일부 구현들에서, 제1 온도 값(T 1 ') 및 제2 온도 값(T 2 ')은 로컬 전력 프로파일(606) 상에서 식별되고, 로컬 전력 프로파일(606) 상의 사전정의된 윈도우 크기(L W )를 갖는 시간 윈도우의 시작 및 종료에 각각 대응한다. 제1 온도 값(T 1 ')은 선택적으로 제1 임계 온도(T SET )와 동일한 한편, 제2 온도 값(T 2 ')은 제2 임계 온도(T TH ) 미만이다. 온도 차이가 제1 및 제2 온도 값들 사이에서 결정되고 사전정의된 온도 증가 한계(ΔT')와 비교되어, 제1 도메인(502) 상의 프로세서(204)에 전력 서지가 발생하는지 여부를 나타낸다. 온도 차이가 사전정의된 온도 증가 한계를 초과하는 경우, 로컬 전력 제어 동작(예컨대, 전력 스로틀링 액션)이 하드웨어 레벨에서 제1 도메인의 프로세서(204)에 적용된다.
시스템 온도 프로파일들(602, 604) 및 로컬 온도 프로파일(606)은 대응하는 프로세서 시스템의 실시간 소비 전력 성능을 반영하지 않는데, 그 이유는 온도 응답이 항상 프로세서 시스템에 의해 경험되고 그로부터 측정된 소비 전력 또는 전류로부터 지연되기 때문이다. 도 6에 도시되지 않은 일부 구현들에서, 시스템 전력 프로파일은 직접 일정 시간 지속기간에 걸쳐 SoC의 소비 전력 또는 전류 값들을 모니터링하기 위해 생성되고, 로컬 전력 프로파일은 직접 일정 시간 지속기간에 걸쳐 제1 도메인(예컨대, 프로세서(204))의 소비 전력 또는 전류 값들을 모니터링하기 위해 생성된다. (예컨대, P 1 에서 P 2 로의, I 1 에서 I 2 로의) 소비 전력 또는 전류 증가는 사전정의된 윈도우 크기(L W ) 내에 모니터링되어, 도메인들의 서브세트 또는 제1 도메인 상에서 로컬 전력 제어 동작들(예컨대, 하드 스로틀링)을 개시할지 여부를 결정한다. 또한, 온도에 기초하는 제2 및 제3 기준들은 시스템 전력 프로파일에 의해 표시된 소비 전력 및 전류 레벨들에 기초하도록 조정된다. 제2 기준은 제3 기준만큼 중요하지 않고, 대응하는 소비 전력 및 전류 레벨들은 펌웨어 레벨로부터 개시되는 "소프트" 스로틀링을 허용한다. 그에 반해서, 제3 기준은 하드웨어 레벨에서 "하드" 스로틀링을 트리거하고, 그에 의해 "소프트" 스로틀링보다 훨씬 더 빠른 레이트로 소비 전력 및 전류 레벨들을 상한 미만으로 제어한다.
일부 상황들에서, 제1 시간(t 1 ) 이전에, 시스템 온도 프로파일의 온도 값은 온도 모니터링 빈도에 따라 지속적으로 제1 임계 온도(T SET )와 비교된다. 제1 시간(t 1 ) 후에, 온도 모니터링 빈도에서의 그러한 비교는 보류되는 한편, 제2 임계 온도(T TH )와의 비교가 사전정의된 제어 빈도로 발생한다. 일부 구현들에서, 각자의 시스템 온도 값이 제1 온도 임계치(T TH ) 미만으로 떨어질 때, 비교 동작이 재개되고, 즉, 시스템 온도 프로파일의 온도 값은 온도 모니터링 빈도에 따라 지속적으로 제1 임계 온도(T SET )와 다시 비교된다. 또한, 각자의 시스템 온도 값이 제1 온도 임계치(T TH ) 미만일 때, 시스템 온도 프로파일의 온도 값은 사전정의된 제어 빈도에 따라 제2 임계 온도(T TH )와 비교되지 않는다.
복수의 전력 샘플들은 로컬 샘플링 레이트에 따라(예컨대, 10μs 마다) 제1 도메인으로부터 수집됨에 유의한다. 각각의 시스템 온도 값은 글로벌 풀링 레이트에 따라(예컨대, 100μs 마다) 복수의 도메인들의 전력 샘플들의 각자의 서브세트로부터 조합된다. 로컬 샘플링 레이트는 글로벌 풀링 레이트보다 크고, 글로벌 풀링 레이트는 사전정의된 제어 빈도(예컨대, 500μs 마다)보다 크다.
도 7은 일부 구현들에 따른, SoC 기반 전자 디바이스의 소비 전력을 관리하는 방법(700)의 흐름도이다. 방법(700)은 복수의 도메인들을 갖는 프로세서 시스템에서 구현된다. 일부 구현들에서, 프로세서 시스템은 복수의 프로세서 유닛들, 하나 이상의 메모리 유닛들, 및 전력 관리 집적 회로(PMIC)를 포함하고, 복수의 도메인들 각각은 프로세서 시스템의 별개의 서브세트를 포함한다. 복수의 전력 샘플들이 일정 시간 지속기간에 걸쳐 복수의 도메인들로부터 수집된다(702). 각각의 전력 샘플은 각자의 도메인과 연관된 온도, 소비 전력, 및 전류 값 중 적어도 하나를 포함한다. 일례에서, 각각의 전력 샘플은 특정 시간에 프로세서(204)와 연관된 온도, 소비 전력, 전류 값 모두를 포함한다. 선택적으로, 이러한 전력 샘플들은 복수의 도메인들에 위치된 전력 센서들에 의해 측정되고 전력 관리 엔진(210)으로 전송된다. 선택적으로, 전력 센서들에 의해 측정된 전력 샘플들은 도메인들, 허브(예컨대, 도 4의 지역 AMU(406B) 및 온도 센서 허브(408C)), 또는 글로벌 모듈(414)에서 사전프로세싱되고, 사전프로세싱된 전력 샘플들은 전력 관리 엔진(210)으로 전송된다. 선택적으로, 예컨대 인접 전력 센서들로부터 동시에 측정된 전력 샘플들의 세트 또는 전력 샘플들의 이력에 기초하여, 전력 샘플들의 서브세트가 추정된다.
복수의 도메인들의 복수의 전력 샘플들의 서브세트가 복수의 시스템 온도 값들을 포함하는 시스템 온도 프로파일(602)을 생성하기 위해 조합된다(704). 전력 관리 엔진(210)은 시스템 온도 프로파일(602)이 제1 기준을 만족하는지 여부를 결정한다(706). 시스템 온도 프로파일(602)이 제1 시간(t 1 )에 제1 기준을 만족한다는 결정(708)에 따라, 사전정의된 제어 빈도로, 전력 관리 엔진(210)은 실시간으로, 시스템 온도 프로파일(602)의 각자의 시스템 온도 값이 제2 기준을 만족하는지 또는 제3 기준을 만족하는지를 결정한다(710). 일부 구현들에서, 각자의 시스템 온도 값은 사전정의된 제어 빈도에 따라 시스템 온도 프로파일(602) 상에서 제1 시간(t 1 ) 이후 모니터링되는 시스템 온도 값들의 시간적으로 순서화된 시퀀스에 속한다.
각자의 시스템 온도 값이 제2 기준을 만족한다는 결정에 따라, 전력 관리 엔진(210)은 펌웨어 레벨에서 복수의 도메인들의 전력 버짓들을 결정하고 그리고 전력 버짓들에 따라 복수의 도메인들의 동작들을 인에이블한다(712). 일부 구현들에서, 이러한 동작들은 개별 도메인들 상에서 구현되는 전력 스로틀링 액션들을 포함하지만, 펌웨어 레벨에서 개시되고, 예컨대 도 6의 글로벌 전력 제어 동작(608A 또는 608B)에서의 긴 제어 루프들에 대응한다. 각자의 시스템 온도 값이 제3 기준을 만족한다는 결정에 따라, 전력 관리 엔진(210)은 도메인들의 서브세트를 선택하고 하드웨어 레벨에서 직접 도메인들의 서브세트 각각에 각자의 전력 스로틀링 액션을 인에이블한다(714). 이러한 전력 스로틀링 액션은 하드웨어 레벨에서 직접 개시되고, 예컨대 도 6의 로컬 전력 제어 동작(610)에서의 짧은 제어 루프에 대응한다. 구체적으로, 일부 구현들에서, 도메인들의 서브세트 각각에 대해, 각자의 스로틀링 액션은 아키텍처 스로틀링, 전력 레일 스케일링, 및 클록 스로틀링 중 하나 이상을 포함한다(716). 아키텍처 스로틀링은, DRAM을 포함한 각자의 도메인에 대한 트래픽을 주기적으로 차단하거나 프로세서 유닛을 포함한 각자의 도메인에서의 높은 전류 스파이크들을 억제하기 위해 적용된다. 클록 스로틀링은 각자의 도메인의 클록 주파수를 감소시키기 위해 적용된다. 성능 포인트 스로틀링은 각자의 도메인의 클록 주파수 및 전력 공급 전압들을 공동으로 조정하기 위해 적용된다.
일부 구현들에서, 제1 온도 값(T 1 ) 및 제2 온도 값(T 2 )은 시스템 온도 프로파일(604) 상에서 식별되고, 사전정의된 윈도우 크기(L W )를 갖는 시간 윈도우의 시작 및 종료에 각각 대응한다. 전력 관리 엔진(210)은 제1 및 제2 온도 값들 사이의 온도 차이 및 온도 차이가 사전정의된 온도 증가 한계를 초과하는지 여부를 결정한다. 일부 구현들에서, 사전정의된 온도 증가 한계는 프로그래밍가능하다. 온도 차이가 선택적으로 프로그래밍가능한 사전정의된 온도 증가 한계를 초과한다는 결정에 따라, 도메인들의 서브세트가 선택되어 하드웨어 레벨에서 직접 각자의 전력 스로틀링 액션을 적용한다. 짧은 제어 루프들이 적용되어 온도 증가를 억제하고, 그에 의해 온도 값이 제1 시간(t 1 ) 이후 임계 시간의 지속기간(W T ) 내에 최대 온도(T MAX )를 넘지 않는 것을 보장한다.
대안적으로, 일부 구현들에서, 제1 전력 값 P 1 또는 I 1 및 제2 전력 값 P 2 또는 I 2 는 프로세서 시스템(예컨대, SoC(102))의 소비 전력 또는 전류 값들의 시스템 전력 프로파일 상에서 식별되고, 사전정의된 윈도우 크기(L W )를 갖는 시간 윈도우의 시작 및 종료에 각각 대응한다. 전력 관리 엔진(210)은 제1 및 제2 전력 값들 사이의 전력 차이 및 전력 차이가 선택적으로 프로그래밍가능한 사전정의된 전력 증가 한계를 초과하는지 여부를 결정한다. 전력 차이가 사전정의된 전력 증가 한계를 초과한다는 결정에 따라, 도메인들의 서브세트가 선택되어 하드웨어 레벨에서 직접 각자의 전력 스로틀링 액션을 적용한다. 짧은 제어 루프들이 적용되어 전력 또는 전류 버스트를 억제하고, 그에 의해 소비 전력 또는 전류 값이 제1 시간(t 1 ) 이후 임계 시간의 지속기간(W T ) 내에 최대 전력 P MAX 또는 I MAX 를 넘지 않는 것을 보장한다.
일부 구현들에서, 로컬 전력 프로파일(606)이 제1 도메인에서 수집된 복수의 전력 값들의 제1 서브세트에 기초하여 제1 도메인(예컨대, 프로세서(204))에 대해 생성된다. 제1 온도 값(T 1 ') 및 제2 온도 값(T 2 ')은 로컬 전력 프로파일(606) 상에서 식별되고, 사전정의된 윈도우 크기를 갖는 시간 윈도우의 시작 및 종료에 각각 대응한다. 온도 차이는 제1 온도 값(T 1 ') 및 제2 온도 값(T 2 ') 사이에서 결정되고, 사전정의된 온도 증가 한계와 비교된다. 일부 구현들에서, 사전정의된 온도 증가 한계는 프로그래밍가능하다. 온도 차이가 사전정의된 온도 증가 한계를 초과한다는 결정에 따라, 전력 스로틀링 액션은 하드웨어 레벨에서 직접 제1 도메인에 적용된다. 짧은 제어 루프들은 온도 증가를 억제하기 위해 적용된다. 대안적으로, 일부 구현들에서, 로컬 전력 프로파일(606)은 제1 도메인의 소비 전력 및 전류 값들과 관련된다. 제1 전력 값 P 1 ' 또는 I 1 ' 및 제2 전력 값 P 2 ' 또는 I 2 '는 로컬 전력 프로파일(606) 상에서 식별되고, 사전정의된 윈도우 크기를 갖는 시간 윈도우의 시작 및 종료에 각각 대응한다. 전력 차이는 제1 및 제2 전력 값들 사이에서 결정되고, 선택적으로 프로그래밍가능한 사전정의된 전력 증가 한계와 비교된다. 전력 차이가 사전정의된 전력 증가 한계를 초과한다는 결정에 따라, 전력 스로틀링 액션은 하드웨어 레벨에서 직접 제1 도메인에 적용된다. 짧은 제어 루프들은 소비 전력 또는 전류 증가를 억제하기 위해 적용된다.
일부 구현들에서, 도메인들의 서브세트 각각에 대해, 각자의 스로틀링 액션은 각자의 도메인에 대응하는 전력 값들의 서브세트에 대한 스로틀링 임계치와 연관된다. 사전정의된 전력 관리 정책에 따르면, 전력 관리 엔진(210)은 펌웨어 레벨에서 각자의 도메인의 각자의 스로틀링 액션과 연관된 스로틀링 임계치를 결정한다. 각자의 도메인의 전력 값들의 서브세트가 스로틀링 임계치를 초과한다는 결정에 따라, 각자의 도메인은 하드웨어 레벨에서 각자의 스로틀링 액션을 구현한다.
일부 구현들에서, 전력 관리 엔진(210)은 전체 프로세서 시스템에 대한 총 전력 버짓을 결정하고, 총 전력 버짓의 각자의 부분을 복수의 도메인들 각각에 동적으로 할당한다. 도메인들의 전력 버짓들은 펌웨어 레벨에서 도메인들의 활동 레벨들에 기초하여 재분배되고, 각각의 도메인은 총 전력 버짓의 할당된 부분에 따라 하드웨어 레벨에서 로컬로 그의 동작을 조정하도록 명령받는다.
일부 구현들에서, 각자의 시스템 온도 값에 기초하여, 복수의 사전정의된 전력 성능 상태(P-상태)들 중 하나가 복수의 프로세서들 각각에 대해 선택되고, P-상태들 각각은 프로세서들의 사전정의된 전력 및 성능 설정들의 세트에 대응한다. 전력 버짓들은 복수의 프로세서들 각각에 대한 선택된 P-상태의 사전정의된 전력 및 성능 설정들의 세트에 따라 복수의 도메인들 간에 재분배된다.
일부 구현들에서, 제1 기준은, 대응하는 시간에 시스템 온도 프로파일이 제1 온도 임계치(T SET ) 이상으로 증가할 것을 요구한다. 제2 기준은, 대응하는 시간에서의 시스템 온도 값이 제1 온도 임계치(T SET )와 제2 온도 임계치(T TH ) 사이에 있을 것을 요구한다. 제3 기준은, 대응하는 시간에서의 시스템 온도 값이 제2 온도 임계치(T TH )보다 크거나, 또는 시스템 온도 값이 임계 시간의 지속기간보다 긴 연장된 시간 동안 제1 온도 임계치(T SET ) 초과로 유지될 것을 요구한다. 제1 온도 임계치(T SET )는 제2 온도 임계치(T TH )보다 작고, 제2 온도 임계치(T TH )는 최대 온도(T MAX )보다 작으며, 그 미만으로 프로세서 시스템이 제어된다.
일부 구현들에서, 제1 시간(t 1 ) 이전에, 시스템 온도 프로파일이 제1 기준을 만족하는지 여부가 온도 모니터링 빈도에 따라 모니터링된다. 제1 시간(t 1 ) 후에, 전력 관리 엔진(210)은 온도 모니터링 빈도에 따라 시스템 온도 프로파일이 제1 기준을 만족하는지 여부를 결정하는 것을 보류한다. 각자의 시스템 온도 값이 제1 온도 임계치(T TH ) 미만이라는 결정에 따라, 전력 관리 엔진(210)은, 온도 모니터링 빈도에 따라 시스템 온도 프로파일이 제1 기준을 만족하는지 여부를 결정하는 것을 재개하고, 사전정의된 제어 빈도에 따라 각자의 시스템 온도 값이 제2 및 제3 기준들을 만족하는지 여부를 결정하는 것을 중단한다.
일부 구현들에서, 복수의 전력 샘플들은 로컬 샘플링 레이트에 따라 복수의 도메인들로부터 수집된다. 각각의 시스템 온도 값은 글로벌 풀링 레이트에 따라 복수의 도메인들의 각자의 전력 샘플들의 서브세트로부터 조합된다. 로컬 샘플링 레이트는 글로벌 풀링 레이트보다 크고, 글로벌 풀링 레이트는 사전정의된 제어 빈도보다 크다.
일부 구현들에서, 각각의 도메인은 PMIC에 의해 구동되는 하나 이상의 전력 레일들에 의해 전력을 공급받는다. 각각의 전력 레일에 대해, 각자의 전류 값들의 세트가 각각의 전력 레일에 대해 수집된다. 각자의 전류 값들의 세트가 제2 시간의 지속기간 동안의 제2 임계 전류(예컨대, 1ms 동안 1.2I CC,nom )보다 큰 제1 시간의 지속기간 동안의 제1 임계 전류(예컨대, 300 내지 400μs 동안 1.35I CC,nom )보다 크다는 결정에 따라, 전력 스로틀링 액션이 각자의 도메인의 각자의 전력 레일 상에서 구현된다. 제1 임계 전류는 제2 임계 전류보다 크고, 제1 시간의 지속기간은 제2 시간의 지속기간보다 짧다.
온도 프로파일들은 프로세서 시스템의 실시간 소비 전력 또는 전류 성능을 반영하지 않는데, 그 이유는 온도 응답이 프로세서 시스템에 의해 경험되고 그로부터 측정된 소비 전력 또는 전류 값들로부터 지연되기 때문이다. 일부 상황들에서, 전력 관리 방법은 직접 시스템 전력 프로파일에 기초하여 복수의 도메인들을 갖는 프로세서 시스템의 전력을 관리하도록 구현된다. 시스템 전력 프로파일은, 온도 값들로 제한되지 않고 전류 값들 또는 소비 전력 값들일 수 있는 복수의 시스템 전력 값들을 포함한다. 복수의 전력 샘플들이 일정 시간 지속기간에 걸쳐 복수의 도메인들로부터 수집된다. 각각의 전력 샘플은 각자의 도메인과 연관된 온도, 소비 전력, 및 전류 값 중 적어도 하나를 포함한다. 복수의 도메인들의 복수의 전력 샘플들의 서브세트가 복수의 시스템 전력 값들(소비 전력들 또는 전류 값들)을 포함하는 시스템 전력 프로파일을 생성하기 위해 조합된다. 전력 관리 엔진은 시스템 전력 프로파일이 제1 기준을 만족하는지 여부를 결정한다. 시스템 전력 프로파일이 제1 시간(t 1 )에 제1 기준을 만족한다는 결정에 따라, 전력 관리 엔진은, 사전정의된 제어 빈도로 그리고 실시간으로, 시스템 전력 프로파일의 각자의 시스템 전력 값이 제2 기준을 만족하는지 또는 제3 기준을 만족하는지를 결정한다. 각자의 시스템 전력 값이 제2 기준을 만족한다는 결정에 따라, 전력 관리 엔진은 펌웨어 레벨에서 복수의 도메인들의 전력 버짓들을 결정하고 그리고 전력 버짓들에 따라 복수의 도메인들의 동작들을 인에이블한다. 일부 실시 형태에서, 그러한 동작들은 스로틀링 액션들을 포함할 수 있다. 각자의 시스템 전력 값이 제3 기준을 만족한다는 결정에 따라, 전력 관리 엔진은 도메인들의 서브세트를 결정 선택하고, 하드웨어 레벨에서 도메인들의 서브세트 각각에 각자의 전력 스로틀링 액션을 적용한다.
제1 기준은 프로세서 시스템의 전력 성능이 면밀히 모니터링되어야 하는 중요 성능 레짐(critical performance regime)의 개시와 연관된다. 제2 기준과 제2 기준 둘 모두는 제1 기준보다 더 중요하지만, 제2 기준이 제3 기준만큼 중요하지 않다. 제2 기준이 만족될 때, 성능 한계로부터(예컨대, 최대 온도(T MAX ), 가장 큰 전력 버스트)의 헤드 룸이 여전히 이용가능하여, 전력 관리 엔진(210)이 펌웨어 레벨로부터 "소프트" 스로틀링을 사용하여 프로세서 시스템의 전력 성능을 제어하기 위해 글로벌 전력 제어 동작을 적용할 수 있게 한다. 그에 반해서, 제3 기준이 만족될 때, 성능 한계로부터의 헤드 룸이 제한되고, "하드" 스로틀링 액션들이 개별 도메인들 상에서 즉시 온도, 소비 전력 또는 전류 값들을 감소시키기 위해 하드웨어 레벨에서 직접 취해져야 한다. 펌웨어 레벨 "소프트" 스로틀링의 제1 레이트(예컨대, ~ 1ms)는 하드웨어 레벨 "하드" 스로틀링 액션들의 제2 레이트(예컨대, ~ 50 내지 100μs)만큼 빠르지 않다. 이와 같이, "소프트" 또는 "하드" 스로틀링 액션들은 시스템 전력 프로파일(예컨대, 시스템 온도 프로파일(602, 604))에 의해 표시된 바와 같이 프로세서 시스템의 전력 상태의 긴급성 레벨에 기초하여 적용될 수 있다.
상이한 유형들의 온도, 소비 전력, 및 전류 프로파일들은 개별 도메인들, 도메인들의 지역, 또는 프로세서 시스템의 온도, 소비 전력, 및/또는 전류 성능을 제어하기 위해 공동으로 모니터링될 수 있다. 일부 구현들에서, 도 6을 참조하면, 시스템 또는 로컬 온도 프로파일이 각각, 프로세서 시스템(예컨대, SoC(102)) 또는 도메인(예컨대, 프로세서(204))의 온도, 소비 전력, 및/또는 전류 성능을 제어하기 위해 모니터링된다. 일부 구현들에서, 소비 전력 또는 전류 프로파일이 프로세서 시스템 또는 개별 도메인에 대해 모니터링되어, 프로세서 시스템 또는 개별 도메인의 소비 전력 및 전류 성능을 제어한다. 선택적으로, 소비 전력 프로파일이 모니터링되어, 직접 그리고 온도 또는 전류 값들의 모니터링을 수반하지 않으면서 프로세서 시스템 또는 개별 도메인의 소비 전력 성능을 제어한다. 선택적으로, 전류 프로파일이 모니터링되어, 직접 그리고 온도 또는 소비 전력의 모니터링을 수반하지 않으면서 프로세서 시스템 또는 개별 도메인의 전류 성능을 제어한다.
도 8은 일부 구현들에 따른, SoC 기반 전자 디바이스의 소비 전력을 관리하는 방법(800)의 흐름도이다. 방법(800)은 전자 시스템의 전력 관리 엔진에서 구현된다. 일부 구현들에서, 프로세서 시스템은 복수의 프로세서 유닛들, 하나 이상의 메모리 유닛들, 및 전력 관리 집적 회로(PMIC)를 포함하고, 복수의 도메인들 각각은 프로세서 시스템의 별개의 서브세트를 포함한다. 복수의 전력 샘플들이 일정 시간 지속기간에 걸쳐 복수의 도메인들로부터 수신된다(802). 각각의 전력 샘플은 각자의 도메인과 연관된 온도, 소비 전력, 및 전류 값 중 적어도 하나를 포함한다. 일례에서, 각각의 전력 샘플은 특정 시간에 프로세서(204)와 연관된 온도, 소비 전력, 전류 값 모두를 포함한다. 선택적으로, 이러한 전력 샘플들은 복수의 도메인들에 위치된 전력 센서들에 의해 측정되고 전력 관리 엔진(210)으로 전송된다. 선택적으로, 전력 센서들에 의해 측정된 전력 샘플들은 도메인들, 허브(예컨대, 도 4의 지역 AMU(406B) 및 온도 센서 허브(408C)), 또는 글로벌 모듈(414)에서 사전프로세싱되고, 사전프로세싱된 전력 샘플들은 전력 관리 엔진(210)으로 전송된다. 선택적으로, 예컨대 인접 전력 센서들로부터 동시에 측정된 전력 샘플들의 세트 또는 전력 샘플들의 이력에 기초하여, 전력 샘플들의 서브세트가 추정된다.
전력 샘플들은 하나 이상의 전력 프로파일들(예컨대, 도 6의 프로파일들(602 내지 606)) 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 전력 센서들의 위치들에 기초하여 프로세싱된다(804). 하나 이상의 전력 프로파일들에 기초하여, 제1 레이트를 갖는 글로벌 전력 제어 동작이 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 전력 버짓들에 따라 복수의 전력 도메인들의 동작들을 인에이블함으로써 구현된다(806). 하나 이상의 전력 프로파일들에 기초하여, 복수의 전력 도메인들이 하드웨어 레벨에서 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하기 위해 인에이블된다(808). 로컬 전력 제어 동작들은 제1 레이트보다 큰 제2 레이트들을 갖는다.
일부 구현들에서, 각각의 프로세서 클러스터(202)는 하나 이상의 각자의 프로세서들(204) 및 클러스터 캐시(206)를 포함한다. 제1 메모리(208)는 하나 이상의 프로세서 클러스터들(202)로부터 데이터 액세스 요청들을 수신하기 위해 하나 이상의 프로세싱 클러스터들에 커플링된다. PMIC는 복수의 전력 레일들을 하나 이상의 프로세서 클러스터들(202) 및 제2 메모리(104)에 제공하도록 구성된다. 제2 메모리(104)는 복수의 프로세싱 클러스터들(202)로부터 제1 메모리(208)로의, 제1 메모리(208)에 의해 만족되지 않는 데이터 검색 요청들을 수신하도록 구성된다. 복수의 전력 센서들(408)은 온도 값들을 측정하기 위한 복수의 온도 센서들 및 소비 전력 및 전류 값들을 측정하기 위한 복수의 활동 모니터 유닛(AMU)들(406)을 포함한다.
일부 구현들에서, 전력 도메인들 각각은 하나 이상의 프로세서 클러스터들(202), 제1 메모리(208), PMIC(118), 및 제2 메모리(104)의 별개의 서브세트를 포함한다. 각각의 로컬 전력 제어 동작은 각자의 전력 도메인 상에 배치된 전력 센서들의 서브세트에 의해 수집된 전력 샘플들의 서브세트로부터 생성된 대응하는 로컬 전력 프로파일에 기초하여 각자의 전력 도메인 상에서 구현되도록 구성된다. 각자의 전력 도메인은 전력 관리 엔진(210)으로부터 각자의 전력 스로틀링 임계치를 수신하도록 구성된다. 하나 이상의 전력 프로파일들은 대응하는 로컬 전력 프로파일을 포함한다.
일부 구현들에서, 하나 이상의 프로세서 클러스터들(202) 및 제1 메모리(208)는 시스템 온 칩(SoC)(102) 상에 통합되고, SoC(102)는 집적 반도체 디바이스(300)에서 PMIC(118)와 통합된다.
일부 구현들에서, 각각의 도메인은 하나 이상의 전력 레일들에 의해 구동된다. 각각의 전력 레일에 대해, 각자의 전류 값들의 세트가 수집된다. 각자의 전류 값들의 세트가 제1 시간의 지속기간 동안의 제1 임계 전류보다 크거나, 제2 시간의 지속기간 동안의 제2 임계 전류보다 크다는 결정에 따라, 전력 스로틀링 액션이 각자의 도메인의 각자의 전력 레일 상에서 인에이블된다. 제1 임계 전류는 제2 임계 전류보다 크고, 제1 시간의 지속기간은 제2 시간의 지속기간보다 짧다.
도 7 및 도 8에서의 동작들이 설명되었던 특정 순서가 단지 예시적일 뿐이며, 설명된 순서가 동작들이 수행될 수 있는 유일한 순서라는 것을 표시하도록 의도되지 않음을 이해해야 한다. 당업자는, 본 명세서에 설명된 바와 같이 SoC 기반 전자 디바이스(200)의 소비 전력을 관리하기 위한 다양한 방식들을 인식할 것이다. 추가적으로, 도 1 내지 도 6과 관련하여 위에서 설명된 다른 프로세스들의 세부사항들은 또한, 도 7 또는 도 8과 관련하여 위에서 설명된 방법(700 또는 800)과 유사한 방식으로 적용가능함에 유의해야 한다. 간결함을 위해, 이들 세부사항들은 여기서 반복되지 않는다.
구현 예들은 적어도 아래의 넘버링된 조항들에서 설명된다:
조항 1. 전자 시스템으로서, 전자 시스템은, 하나 이상의 프로세서 클러스터들 및 제1 메모리, 전력 관리 집적 회로(PMIC); 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리; 전자 시스템 상에 분산된 복수의 전력 센서들로서, 전력 센서들은 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함하는, 복수의 전력 센서들; 및 복수의 전력 센서들에 커플링된 전력 관리 엔진을 포함하고, 전력 관리 엔진은, (1) 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수신하도록; (2) 하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 전력 센서들의 위치들에 기초하여 전력 샘플들을 프로세싱하도록; (3) 하나 이상의 전력 프로파일들에 기초하여, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 전력 버짓들에 따라 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현하도록; 그리고 (4) 하나 이상의 전력 프로파일들에 기초하여, 복수의 전력 도메인들이 하드웨어 레벨에서 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 것으로서, 로컬 전력 제어 동작들은 제1 레이트보다 큰 제2 레이트들을 갖는, 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하도록 구성된다.
조항 2. 조항 1의 전자 디바이스에 있어서, 각각의 프로세서 클러스터는 하나 이상의 각자의 프로세서들 및 클러스터 캐시를 포함하고; 제1 메모리는 하나 이상의 프로세서 클러스터들로부터 데이터 액세스 요청들을 수신하기 위해 하나 이상의 프로세싱 클러스터들에 커플링되고; PMIC는 하나 이상의 프로세서 클러스터들 및 제2 메모리에 복수의 전력 레일들을 제공하도록 구성되고; 제2 메모리는 복수의 프로세싱 클러스터들로부터 제1 메모리로의, 제1 메모리에 의해 만족되지 않는 데이터 검색 요청들을 수신하도록 구성되고; 복수의 전력 센서들은, 온도 값들을 측정하기 위한 복수의 온도 센서들 및 소비 전력 및 전류 값들을 측정하기 위한 복수의 활동 모니터 유닛(AMU)들을 포함한다.
조항 3. 조항 1 또는 조항 2의 전자 시스템에 있어서, 전력 도메인들 각각은 하나 이상의 프로세서 클러스터들, 제1 메모리, PMIC, 및 제2 메모리의 별개의 서브세트를 포함하고; 각각의 로컬 전력 제어 동작은 각자의 전력 도메인 상에 배치된 전력 센서들의 서브세트에 의해 수집된 전력 샘플들의 서브세트로부터 생성된 대응하는 로컬 전력 프로파일에 기초하여 각자의 전력 도메인 상에서 구현되도록 구성되고, 각자의 전력 도메인은 전력 관리 엔진으로부터 각자의 전력 스로틀링 임계치를 수신하도록 구성되고, 하나 이상의 전력 프로파일들은 대응하는 로컬 전력 프로파일을 포함한다.
조항 4. 조항 1 내지 조항 3 중 임의의 조항의 전자 시스템에 있어서, 하나 이상의 프로세서 클러스터들 및 제1 메모리는 시스템 온 칩(SoC) 상에 통합되고, SoC는 집적 반도체 디바이스에서 PMIC와 통합된다.
조항 5. 조항 4의 전자 시스템에 있어서, 집적 반도체 디바이스, 제2 메모리, 및 전력 관리 엔진은 메인 회로 보드 상에 조립된다.
조항 6. 조항 4 또는 조항 5의 전자 시스템에 있어서, 메인 회로 보드는, 시스템 제어, 관리성 및 디버그(CMD) 컴포넌트, 보안 프로세서, 및 입력/출력(IO) 제어기 중 하나 이상을 추가로 포함한다.
조항 7. 조항 1 내지 조항 6 중 임의의 조항의 전자 시스템에 있어서, 각각의 도메인은 하나 이상의 전력 레일들에 의해 구동되고, 전력 관리 엔진은 각각의 전력 레일에 대해, 각자의 전류 값들의 세트를 수집하도록; 그리고 각자의 전류 값들의 세트가 제1 시간의 지속기간 동안의 제1 임계 전류보다 크거나, 제2 시간의 지속기간 동안의 제2 임계 전류보다 크다는 결정에 따라, 각자의 도메인의 각자의 전력 레일 상에서 전력 스로틀링 액션을 인에이블하도록 구성되고; 제1 임계 전류는 제2 임계 전류보다 크고, 제1 시간의 지속기간은 제2 시간의 지속기간보다 짧다.
조항 8. 조항 1 내지 조항 7 중 임의의 조항의 전자 시스템에 있어서, 각각의 스로틀링 액션은 아키텍처 스로틀링, 전력 레일 스케일링, 및 클록 스로틀링 중 하나 이상을 포함하고; 아키텍처 스로틀링은, DRAM을 포함한 각자의 도메인에 대한 트래픽을 주기적으로 차단하거나 프로세서 유닛을 포함한 각자의 도메인에서의 높은 전류 스파이크들을 억제하기 위해 적용되고; 클록 스로틀링은 각자의 도메인의 클록 주파수를 감소시키기 위해 적용되고; 성능 포인트 스로틀링은 각자의 도메인의 클록 주파수 및 전력 공급 전압들을 공동으로 조정하기 위해 적용된다.
조항 9. 조항 1 내지 조항 8 중 임의의 조항의 전자 시스템에 있어서, 각각의 스로틀링 액션은 각자의 도메인에 대응하는 전력 값들의 서브세트에 대한 스로틀링 임계치와 연관되고, 전력 관리 엔진은, 사전정의된 전력 관리 정책에 따라, 각자의 도메인의 각자의 스로틀링 액션과 연관된 스로틀링 임계치를 결정하도록 구성되고, 그에 의해 각자의 도메인의 전력 값들의 서브세트가 스로틀링 임계치를 초과한다는 결정에 따라 각자의 도메인이 각자의 스로틀링 액션을 구현할 수 있게 한다.
조항 10. 조항 1 내지 조항 9 중 임의의 조항의 전자 시스템에 있어서, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하는 것은, 복수의 프로세서들 각각에 대해 복수의 사전정의된 전력 성능 상태(P-상태)들 중 하나를 선택하는 것을 추가로 포함하고, P-상태들 각각은 프로세서들의 사전정의된 전력 및 성능 설정들의 세트에 대응한다.
조항 11. 조항 1 내지 조항 10 중 임의의 조항의 전자 시스템에 있어서, 하나 이상의 전력 프로파일들은 전자 시스템의 복수의 전력 도메인들의 서브세트 또는 전부의 평균 소비 전력 또는 평균 총 전류를 추적하는 시스템 전력 프로파일을 포함하고; 전력 관리 엔진은, 시스템 전력 프로파일에 따라, 글로벌 전력 제어 동작 및 복수의 로컬 전력 제어 동작들을, 전력 제어 레이트에 대한 요건, 글로벌 전력 제어 동작의 제1 레이트, 및 로컬 전력 제어 동작들의 제2 레이트들에 기초하여 인에이블하도록 구성되어, 시스템 전력 프로파일이 전자 시스템의 복수의 전력 도메인들의 서브세트 또는 전부에 대한 사전정의된 상한 미만으로 제어되도록 한다.
조항 12. 조항 1 내지 조항 11 중 임의의 조항의 전자 시스템에 있어서, 하나 이상의 전력 프로파일들은 제1 전력 도메인의 전류를 추적하는 로컬 전류 프로파일을 포함하고; 전력 관리 엔진은, 로컬 전류 프로파일에 따라, 글로벌 전력 제어 동작 및 제1 전력 도메인에 초점을 맞춘 로컬 전력 제어 동작을, 전력 제어 레이트에 대한 요건, 글로벌 전력 제어 동작의 제1 레이트, 및 로컬 전력 제어 동작들의 제2 레이트들에 기초하여 인에이블하도록 구성되어, 로컬 전류 프로파일이 제1 전력 도메인에 대한 사전정의된 전류 한계 미만으로 제어되도록 한다.
조항 13. 전자 시스템의 전력 관리 엔진에 의해 구현되는 방법으로서, 전자 시스템은, 하나 이상의 프로세서 클러스터들 및 제1 메모리, 전력 관리 집적 회로(PMIC), 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리, 전자 시스템 상에 분산된 복수의 전력 센서들, 및 복수의 전력 센서들에 커플링된 전력 관리 엔진으로서, 전력 센서들은 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함하는, 전력 관리 엔진을 가지며, 방법은, 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수신하는 단계; 하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 전력 센서들의 위치들에 기초하여 전력 샘플들을 프로세싱하는 단계; 하나 이상의 전력 프로파일들에 기초하여, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 전력 버짓들에 따라 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현하는 단계; 및 하나 이상의 전력 프로파일들에 기초하여, 복수의 전력 도메인들이 하드웨어 레벨에서 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 단계로서, 로컬 전력 제어 동작들은 제1 레이트보다 큰 제2 레이트들을 갖는, 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 단계를 포함한다.
조항 14. 조항 13의 전자 시스템에 있어서, 각각의 프로세서 클러스터는 하나 이상의 각자의 프로세서들 및 클러스터 캐시를 포함하고; 제1 메모리는 하나 이상의 프로세서 클러스터들로부터 데이터 액세스 요청들을 수신하기 위해 하나 이상의 프로세싱 클러스터들에 커플링되고; PMIC는 하나 이상의 프로세서 클러스터들 및 제2 메모리에 복수의 전력 레일들을 제공하도록 구성되고; 제2 메모리는 복수의 프로세싱 클러스터들로부터 제1 메모리로의, 제1 메모리에 의해 만족되지 않는 데이터 검색 요청들을 수신하도록 구성되고; 복수의 전력 센서들은, 온도 값들을 측정하기 위한 복수의 온도 센서들 및 소비 전력 및 전류 값들을 측정하기 위한 복수의 활동 모니터 유닛(AMU)들을 포함한다.
조항 15. 조항 13 또는 조항 14의 전자 시스템에 있어서, 전력 도메인들 각각은 하나 이상의 프로세서 클러스터들, 제1 메모리, PMIC, 및 제2 메모리의 별개의 서브세트를 포함하고; 각각의 로컬 전력 제어 동작은 각자의 전력 도메인 상에 배치된 전력 센서들의 서브세트에 의해 수집된 전력 샘플들의 서브세트로부터 생성된 대응하는 로컬 전력 프로파일에 기초하여 각자의 전력 도메인 상에서 구현되도록 구성되고, 각자의 전력 도메인은 전력 관리 엔진으로부터 각자의 전력 스로틀링 임계치를 수신하도록 구성되고, 하나 이상의 전력 프로파일들은 대응하는 로컬 전력 프로파일을 포함한다.
조항 16. 조항 13 내지 조항 15 중 임의의 조항의 전자 시스템에 있어서, 하나 이상의 프로세서 클러스터들 및 제1 메모리는 시스템 온 칩(SoC) 상에 통합되고, SoC는 집적 반도체 디바이스에서 PMIC와 통합된다.
조항 17. 조항 16의 전자 시스템에 있어서, 집적 반도체 디바이스, 제2 메모리, 및 전력 관리 엔진은 메인 회로 보드 상에 조립된다.
조항 18. 조항 16 또는 조항 17의 전자 시스템에 있어서, 메인 회로 보드는, 시스템 제어, 관리성 및 디버그(CMD) 컴포넌트, 보안 프로세서, 및 입력/출력(IO) 제어기 중 하나 이상을 추가로 포함한다.
조항 19. 조항 13 내지 조항 18 중 임의의 조항의 전자 시스템에 있어서, 각각의 도메인은 하나 이상의 전력 레일들에 의해 구동되고, 전력 관리 엔진은 각각의 전력 레일에 대해, 각자의 전류 값들의 세트를 수집하도록; 그리고 각자의 전류 값들의 세트가 제1 시간의 지속기간 동안의 제1 임계 전류보다 크거나, 제2 시간의 지속기간 동안의 제2 임계 전류보다 크다는 결정에 따라, 각자의 도메인의 각자의 전력 레일 상에서 전력 스로틀링 액션을 인에이블하도록 구성되고; 제1 임계 전류는 제2 임계 전류보다 크고, 제1 시간의 지속기간은 제2 시간의 지속기간보다 짧다.
조항 20. 조항 13 내지 조항 19 중 임의의 조항의 전자 시스템에 있어서, 각각의 스로틀링 액션은 아키텍처 스로틀링, 전력 레일 스케일링, 및 클록 스로틀링 중 하나 이상을 포함하고; 아키텍처 스로틀링은, DRAM을 포함한 각자의 도메인에 대한 트래픽을 주기적으로 차단하거나 프로세서 유닛을 포함한 각자의 도메인에서의 높은 전류 스파이크들을 억제하기 위해 적용되고; 클록 스로틀링은 각자의 도메인의 클록 주파수를 감소시키기 위해 적용되고; 성능 포인트 스로틀링은 각자의 도메인의 클록 주파수 및 전력 공급 전압들을 공동으로 조정하기 위해 적용된다.
조항 21. 조항 13 내지 조항 20 중 임의의 조항의 전자 시스템에 있어서, 각각의 스로틀링 액션은 각자의 도메인에 대응하는 전력 값들의 서브세트에 대한 스로틀링 임계치와 연관되고, 전력 관리 엔진은, 사전정의된 전력 관리 정책에 따라, 각자의 도메인의 각자의 스로틀링 액션과 연관된 스로틀링 임계치를 결정하도록 구성되고, 그에 의해 각자의 도메인의 전력 값들의 서브세트가 스로틀링 임계치를 초과한다는 결정에 따라 각자의 도메인이 각자의 스로틀링 액션을 구현할 수 있게 한다.
조항 22. 조항 13 내지 조항 21 중 임의의 조항의 전자 시스템에 있어서, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하는 것은, 복수의 프로세서들 각각에 대해 복수의 사전정의된 전력 성능 상태(P-상태)들 중 하나를 선택하는 것을 추가로 포함하고, P-상태들 각각은 프로세서들의 사전정의된 전력 및 성능 설정들의 세트에 대응한다.
조항 23. 조항 13 내지 조항 22 중 임의의 조항의 전자 시스템에 있어서, 하나 이상의 전력 프로파일들은 전자 시스템의 복수의 전력 도메인들의 서브세트 또는 전부의 평균 소비 전력 또는 평균 총 전류를 추적하는 시스템 전력 프로파일을 포함하고; 전력 관리 엔진은, 시스템 전력 프로파일에 따라, 글로벌 전력 제어 동작 및 복수의 로컬 전력 제어 동작들을, 전력 제어 레이트에 대한 요건, 글로벌 전력 제어 동작의 제1 레이트, 및 로컬 전력 제어 동작들의 제2 레이트들에 기초하여 인에이블하도록 구성되어, 시스템 전력 프로파일이 전자 시스템의 복수의 전력 도메인들의 서브세트 또는 전부에 대한 사전정의된 상한 미만으로 제어되도록 한다.
조항 24. 조항 13 내지 조항 23 중 임의의 조항의 전자 시스템에 있어서, 하나 이상의 전력 프로파일들은 제1 전력 도메인의 전류를 추적하는 로컬 전류 프로파일을 포함하고; 전력 관리 엔진은, 로컬 전류 프로파일에 따라, 글로벌 전력 제어 동작 및 제1 전력 도메인에 초점을 맞춘 로컬 전력 제어 동작을, 전력 제어 레이트에 대한 요건, 글로벌 전력 제어 동작의 제1 레이트, 및 로컬 전력 제어 동작들의 제2 레이트들에 기초하여 인에이블하도록 구성되어, 로컬 전류 프로파일이 제1 전력 도메인에 대한 사전정의된 전류 한계 미만으로 제어되도록 한다.
조항 25. 전자 시스템의 비일시적 컴퓨터 판독가능 저장 매체로서, 전자 시스템은, 하나 이상의 프로세서 클러스터들 및 제1 메모리, 전력 관리 집적 회로(PMIC), 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리, 전자 시스템 상에 분산된 복수의 전력 센서들, 및 복수의 전력 센서들에 커플링된 전력 관리 엔진으로서, 전력 센서들은 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함하는, 전력 관리 엔진을 가지며, 비일시적 컴퓨터 판독가능 저장 매체는 명령들을 저장하고 있고, 명령들은, 전력 관리 엔진에 의해 실행될 때 전력 관리 엔진으로 하여금, 조항 13 내지 조항 24 중 임의의 조항에서의 임의의 방법을 수행하게 한다.
조항 26. 전자 시스템에서 전력을 관리하기 위한 장치로서, 전자 시스템은, 하나 이상의 프로세서 클러스터들 및 제1 메모리, 전력 관리 집적 회로(PMIC), 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리, 전자 시스템 상에 분산된 복수의 전력 센서들, 및 전력 관리 엔진으로서, 전력 센서들은 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함하고, 전력 관리 엔진은 복수의 전력 센서들에 커플링되는, 전력 관리 엔진을 가지며, 상기 장치는, 조항 13 내지 조항 24 중 임의의 조항에서의 임의의 방법을 수행하기 위한 수단을 포함한다.
본 명세서에서 다양한 설명된 구현들의 설명에서 사용된 용어는 단지 특정 구현들을 설명하기 위한 것이지 제한하려는 의도가 아니다. 다양한 설명된 구현들 및 첨부된 청구항들의 설명에서 사용된 바와 같이, 단수 형태들 "a", "an" 및 "the"는, 문맥상 명확하게 달리 표시되지 않으면, 복수 형태들을 또한 포함하도록 의도된다. 본 명세서에서 사용된 바와 같은 "및/또는"이라는 용어는 연관된 나열된 항목들 중 하나 이상의 임의의 및 모든 가능한 조합들을 지칭하고 포함함을 또한 이해할 것이다. 본 명세서에서 사용되는 경우, "포함하다(includes)", "포함하는(including)", "포함하다(comprises)" 및/또는 "포함하는(comprising)"이라는 용어들은, 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지는 않음을 추가로 이해할 것이다. 추가적으로, 용어들 "제1", "제2" 등이 다양한 엘리먼트들을 설명하기 위해 본 명세서에서 사용될 수 있지만, 이러한 엘리먼트들이 이러한 용어들에 의해 제한되지 않아야 함을 이해할 것이다. 이러한 용어들은 하나의 엘리먼트를 다른 엘리먼트로부터 구별하기 위해서만 사용된다.
본 명세서에서 사용되는 바와 같이, "~ 인 경우"라는 용어는 선택적으로, 문맥에 따라, "~ 할 때" 또는 "~ 할 시에" 또는 "결정하는 것에 응답하여" 또는 "검출하는 것에 응답하여" 또는 "~ 다는 결정에 따라"를 의미하는 것으로 해석된다. 유사하게, 어구 "~ 라고 결정되는 경우" 또는 "[언급된 조건 또는 이벤트]가 검출되는 경우"는 문맥에 따라, "결정할 시에" 또는 "결정하는 것에 응답하여" 또는 "[언급된 조건 또는 이벤트]를 검출할 시에" 또는 "[언급된 조건 또는 이벤트]를 검출하는 것에 응답하여" 또는 "[언급된 조건 또는 이벤트]가 검출된다는 결정에 따라"를 의미하도록 선택적으로 해석된다.
상기 설명은, 설명의 목적을 위해, 특정 실시 형태들을 참조하여 설명되었다. 그러나, 위의 예시적인 논의들은, 총망라하거나 또는 청구항들을 개시된 정확한 형태들로 제한하도록 의도되지 않는다. 많은 수정들 및 변형들이 위의 교시 내용들에 비추어 가능하다. 실시 형태들은 동작 및 실제 애플리케이션들의 원리들을 가장 잘 설명하고, 그에 의해 다른 당업자가 사용할 수 있게 하기 위해 선정되고 설명되었다.
다양한 도면들은 특정 순서로 다수의 로직 스테이지들을 예시하지만, 순서 의존적이 아닌 스테이지들은 재순서화될 수 있고 다른 스테이지들이 조합되거나 분리될 수 있다. 일부 재순서화 또는 다른 그룹화들이 구체적으로 언급되지만, 다른 것들이 당업자들에게 자명할 것이어서, 본 명세서에 제시된 순서화 및 그룹화들은 대안들에 대해 총망라하는 리스트가 아니다. 또한, 스테이지들은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로 구현될 수 있음을 인식해야 한다.

Claims (20)

  1. 전자 시스템으로서,
    하나 이상의 프로세서 클러스터들 및 제1 메모리;
    전력 관리 집적 회로(power management integrated circuit, PMIC);
    상기 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리;
    상기 전자 시스템 상에 분산된 복수의 전력 센서들로서, 상기 전력 센서들은 상기 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력(power consumption), 및 전류 값들 중 적어도 하나를 포함하는, 상기 복수의 전력 센서들; 및
    상기 복수의 전력 센서들에 커플링된 전력 관리 엔진을 포함하고, 상기 전력 관리 엔진은,
    (1) 상기 복수의 전력 도메인들로부터 상기 복수의 전력 샘플들을 수신하고;
    (2) 하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 상기 전력 센서들의 위치들에 기초하여 상기 전력 샘플들을 프로세싱하고;
    (3) 상기 하나 이상의 전력 프로파일들에 기초하여, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 상기 전력 버짓들에 따라 상기 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현하고; 그리고
    (4) 상기 하나 이상의 전력 프로파일들에 기초하여, 상기 복수의 전력 도메인들이 하드웨어 레벨에서 상기 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 것으로서, 상기 로컬 전력 제어 동작들은 상기 제1 레이트보다 큰 제2 레이트들을 갖는, 상기 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하도록 구성되는, 전자 시스템.
  2. 제1항에 있어서,
    각각의 프로세서 클러스터는 하나 이상의 각자의 프로세서들 및 클러스터 캐시를 포함하고;
    상기 제1 메모리는 상기 하나 이상의 프로세서 클러스터들로부터 데이터 액세스 요청들을 수신하기 위해 상기 하나 이상의 프로세싱 클러스터들에 커플링되고;
    상기 PMIC는 상기 하나 이상의 프로세서 클러스터들 및 제2 메모리에 복수의 전력 레일들을 제공하도록 구성되고;
    상기 제2 메모리는 상기 복수의 프로세싱 클러스터들로부터 상기 제1 메모리로의, 상기 제1 메모리에 의해 만족되지 않는 데이터 검색 요청들을 수신하도록 구성되고;
    상기 복수의 전력 센서들은, 온도 값들을 측정하기 위한 복수의 온도 센서들 및 소비 전력 및 전류 값들을 측정하기 위한 복수의 활동 모니터 유닛(activity monitor unit, AMU)들을 포함하는, 전자 시스템.
  3. 제1항에 있어서,
    상기 전력 도메인들 각각은 상기 하나 이상의 프로세서 클러스터들, 제1 메모리, PMIC, 및 제2 메모리의 별개의 서브세트를 포함하고;
    각각의 로컬 전력 제어 동작은 각자의 전력 도메인 상에 배치된 전력 센서들의 서브세트에 의해 수집된 전력 샘플들의 서브세트로부터 생성된 대응하는 로컬 전력 프로파일에 기초하여 상기 각자의 전력 도메인 상에서 구현되도록 구성되고, 상기 각자의 전력 도메인은 상기 전력 관리 엔진으로부터 각자의 전력 스로틀링 임계치를 수신하도록 구성되고, 상기 하나 이상의 전력 프로파일들은 상기 대응하는 로컬 전력 프로파일을 포함하는, 전자 시스템.
  4. 제1항에 있어서,
    상기 하나 이상의 프로세서 클러스터들 및 제1 메모리는 시스템 온 칩(system on a chip, SoC) 상에 통합되고, 상기 SoC는 집적 반도체 디바이스에서 상기 PMIC와 통합되는, 전자 시스템.
  5. 제4항에 있어서,
    상기 집적 반도체 디바이스, 제2 메모리, 및 전력 관리 엔진은 메인 회로 보드 상에 조립되는, 전자 시스템.
  6. 제5항에 있어서,
    상기 메인 회로 보드는, 시스템 제어, 관리성 및 디버그(control, manageability and debug, CMD) 컴포넌트, 보안 프로세서, 및 입력/출력(IO) 제어기 중 하나 이상을 추가로 포함하는, 전자 시스템.
  7. 제1항에 있어서,
    각각의 도메인은 하나 이상의 전력 레일들에 의해 구동되고, 상기 전력 관리 엔진은 각각의 전력 레일에 대해,
    각자의 전류 값들의 세트를 수집하고; 그리고
    상기 각자의 전류 값들의 세트가 제1 시간의 지속기간 동안의 제1 임계 전류보다 크거나, 제2 시간의 지속기간 동안의 제2 임계 전류보다 크다는 결정에 따라, 각자의 도메인의 각자의 상기 전력 레일 상에서 전력 스로틀링 액션을 인에이블하도록 구성되고;
    상기 제1 임계 전류는 상기 제2 임계 전류보다 크고, 상기 제1 시간의 지속기간은 상기 제2 시간의 지속기간보다 짧은, 전자 시스템.
  8. 제1항에 있어서,
    각각의 스로틀링 액션은 아키텍처 스로틀링, 전력 레일 스케일링, 및 클록 스로틀링 중 하나 이상을 포함하고;
    아키텍처 스로틀링은, DRAM을 포함한 각자의 도메인에 대한 트래픽을 주기적으로 차단하거나 프로세서 유닛을 포함한 상기 각자의 도메인에서의 높은 전류 스파이크들을 억제하기 위해 적용되고;
    클록 스로틀링은 상기 각자의 도메인의 클록 주파수를 감소시키기 위해 적용되고;
    성능 포인트 스로틀링은 상기 각자의 도메인의 상기 클록 주파수 및 전력 공급 전압들을 공동으로 조정하기 위해 적용되는, 전자 시스템.
  9. 제1항에 있어서,
    각각의 스로틀링 액션은 각자의 도메인에 대응하는 전력 값들의 서브세트에 대한 스로틀링 임계치와 연관되고, 상기 전력 관리 엔진은, 사전정의된 전력 관리 정책에 따라, 상기 각자의 도메인의 상기 각자의 스로틀링 액션과 연관된 상기 스로틀링 임계치를 결정하도록 구성되고, 그에 의해 상기 각자의 도메인의 상기 전력 값들의 서브세트가 상기 스로틀링 임계치를 초과한다는 결정에 따라 상기 각자의 도메인이 상기 각자의 스로틀링 액션을 구현할 수 있게 하는, 전자 시스템.
  10. 제1항에 있어서,
    상기 펌웨어 레벨에서 상기 복수의 전력 도메인들의 전력 버짓들을 결정하는 것은,
    복수의 프로세서들 각각에 대해 복수의 사전정의된 전력 성능 상태(P-상태)들 중 하나를 선택하는 것을 추가로 포함하고, 상기 P-상태들 각각은 상기 프로세서들의 사전정의된 전력 및 성능 설정들의 세트에 대응하는, 전자 시스템.
  11. 제1항에 있어서,
    상기 하나 이상의 전력 프로파일들은 상기 전자 시스템의 상기 복수의 전력 도메인들의 서브세트 또는 전부의 평균 소비 전력 또는 평균 총 전류를 추적하는 시스템 전력 프로파일을 포함하고;
    상기 전력 관리 엔진은, 상기 시스템 전력 프로파일에 따라, 상기 글로벌 전력 제어 동작 및 상기 복수의 로컬 전력 제어 동작들을, 전력 제어 레이트에 대한 요건, 상기 글로벌 전력 제어 동작의 상기 제1 레이트, 및 상기 로컬 전력 제어 동작들의 상기 제2 레이트들에 기초하여 인에이블하도록 구성되어, 상기 시스템 전력 프로파일이 상기 전자 시스템의 상기 복수의 전력 도메인들의 서브세트 또는 전부에 대한 사전정의된 상한 미만으로 제어되도록 하는, 전자 시스템.
  12. 제1항에 있어서,
    상기 하나 이상의 전력 프로파일들은 제1 전력 도메인의 전류를 추적하는 로컬 전류 프로파일을 포함하고;
    상기 전력 관리 엔진은, 상기 로컬 전류 프로파일에 따라, 상기 글로벌 전력 제어 동작 및 상기 제1 전력 도메인에 초점을 맞춘 로컬 전력 제어 동작을, 전력 제어 레이트에 대한 요건, 상기 글로벌 전력 제어 동작의 상기 제1 레이트, 및 상기 로컬 전력 제어 동작들의 상기 제2 레이트들에 기초하여 인에이블하도록 구성되어, 상기 로컬 전류 프로파일이 상기 제1 전력 도메인에 대한 사전정의된 전류 한계 미만으로 제어되도록 하는, 전자 시스템.
  13. 제1항에 있어서,
    상기 하나 이상의 전력 프로파일들에 기초하여, 상기 전력 관리 엔진은 상기 글로벌 전력 제어 동작 및 상기 로컬 전력 제어 동작들이 전력 제어 레이트에 대한 요건을 만족하는 것을 인에이블하도록 구성되는, 전자 시스템.
  14. 전자 시스템의 전력 관리 엔진에 의해 구현되는 방법으로서,
    상기 전자 시스템은, 하나 이상의 프로세서 클러스터들 및 제1 메모리, 전력 관리 집적 회로(PMIC), 상기 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리, 상기 전자 시스템 상에 분산된 복수의 전력 센서들, 및 상기 복수의 전력 센서들에 커플링된 상기 전력 관리 엔진을 갖고, 상기 전력 센서들은 상기 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함하며,
    상기 방법은,
    상기 복수의 전력 도메인들로부터 상기 복수의 전력 샘플들을 수신하는 단계;
    하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 상기 전력 센서들의 위치들에 기초하여 상기 전력 샘플들을 프로세싱하는 단계;
    상기 하나 이상의 전력 프로파일들에 기초하여, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 상기 전력 버짓들에 따라 상기 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현하는 단계; 및
    상기 하나 이상의 전력 프로파일들에 기초하여, 상기 복수의 전력 도메인들이 하드웨어 레벨에서 상기 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 단계로서, 상기 로컬 전력 제어 동작들은 상기 제1 레이트보다 큰 제2 레이트들을 갖는, 상기 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 단계를 포함하는, 전자 시스템의 전력 관리 엔진에 의해 구현되는 방법.
  15. 제14항에 있어서,
    각각의 프로세서 클러스터는 하나 이상의 각자의 프로세서들 및 클러스터 캐시를 포함하고;
    상기 제1 메모리는 상기 하나 이상의 프로세서 클러스터들로부터 데이터 액세스 요청들을 수신하기 위해 상기 하나 이상의 프로세싱 클러스터들에 커플링되고;
    상기 PMIC는 상기 하나 이상의 프로세서 클러스터들 및 제2 메모리에 복수의 전력 레일들을 제공하도록 구성되고;
    상기 제2 메모리는 상기 복수의 프로세싱 클러스터들로부터 상기 제1 메모리로의, 상기 제1 메모리에 의해 만족되지 않는 데이터 검색 요청들을 수신하도록 구성되고;
    상기 복수의 전력 센서들은, 온도 값들을 측정하기 위한 복수의 온도 센서들 및 소비 전력 및 전류 값들을 측정하기 위한 복수의 활동 모니터 유닛(AMU)들을 포함하는, 전자 시스템의 전력 관리 엔진에 의해 구현되는 방법.
  16. 제14항에 있어서,
    상기 전력 도메인들 각각은 상기 하나 이상의 프로세서 클러스터들, 제1 메모리, PMIC, 및 제2 메모리의 별개의 서브세트를 포함하고;
    각각의 로컬 전력 제어 동작은 각자의 전력 도메인 상에 배치된 전력 센서들의 서브세트에 의해 수집된 전력 샘플들의 서브세트로부터 생성된 대응하는 로컬 전력 프로파일에 기초하여 상기 각자의 전력 도메인 상에서 구현되도록 구성되고, 상기 각자의 전력 도메인은 상기 전력 관리 엔진으로부터 각자의 전력 스로틀링 임계치를 수신하도록 구성되고, 상기 하나 이상의 전력 프로파일들은 상기 대응하는 로컬 전력 프로파일을 포함하는, 전자 시스템의 전력 관리 엔진에 의해 구현되는 방법.
  17. 제14항에 있어서,
    상기 하나 이상의 프로세서 클러스터들 및 제1 메모리는 시스템 온 칩(SoC) 상에 통합되고, 상기 SoC는 집적 반도체 디바이스에서 상기 PMIC와 통합되는, 전자 시스템의 전력 관리 엔진에 의해 구현되는 방법.
  18. 제14항에 있어서,
    각각의 도메인은 하나 이상의 전력 레일들에 의해 구동되고, 상기 방법은 각각의 전력 레일에 대해,
    각자의 전류 값들의 세트를 수집하는 단계; 및
    상기 각자의 전류 값들의 세트가 제1 시간의 지속기간 동안의 제1 임계 전류보다 크거나, 제2 시간의 지속기간 동안의 제2 임계 전류보다 크다는 결정에 따라, 각자의 도메인의 각자의 상기 전력 레일 상에서 전력 스로틀링 액션을 인에이블하는 단계를 추가로 포함하고,
    상기 제1 임계 전류는 상기 제2 임계 전류보다 크고, 상기 제1 시간의 지속기간은 상기 제2 시간의 지속기간보다 짧은, 전자 시스템의 전력 관리 엔진에 의해 구현되는 방법.
  19. 전자 시스템의 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 전자 시스템은, 하나 이상의 프로세서 클러스터들 및 제1 메모리, 전력 관리 집적 회로(PMIC), 상기 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리, 상기 전자 시스템 상에 분산된 복수의 전력 센서들, 및 상기 복수의 전력 센서들에 커플링된 전력 관리 엔진을 갖고, 상기 전력 센서들은 상기 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함하며,
    상기 비일시적 컴퓨터 판독가능 저장 매체는 명령들을 저장하고 있고,
    상기 명령들은, 상기 전력 관리 엔진에 의해 실행될 때 상기 전력 관리 엔진으로 하여금,
    상기 복수의 전력 도메인들로부터 상기 복수의 전력 샘플들을 수신하는 것;
    하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 상기 전력 센서들의 위치들에 기초하여 상기 전력 샘플들을 프로세싱하는 것;
    상기 하나 이상의 전력 프로파일들에 기초하여, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 상기 전력 버짓들에 따라 상기 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현하는 것; 및
    상기 하나 이상의 전력 프로파일들에 기초하여, 상기 복수의 전력 도메인들이 하드웨어 레벨에서 상기 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 것으로서, 상기 로컬 전력 제어 동작들은 상기 제1 레이트보다 큰 제2 레이트들을 갖는, 상기 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하는 것을 수행하게 하는, 전자 시스템의 비일시적 컴퓨터 판독가능 저장 매체.
  20. 전자 시스템에서 전력을 관리하기 위한 장치로서,
    상기 전자 시스템은, 하나 이상의 프로세서 클러스터들 및 제1 메모리, 전력 관리 집적 회로(PMIC), 상기 하나 이상의 프로세싱 클러스터들에 커플링된 제2 메모리, 상기 전자 시스템 상에 분산된 복수의 전력 센서들, 및 전력 관리 엔진을 갖고, 상기 전력 센서들은 상기 전자 시스템의 복수의 전력 도메인들로부터 복수의 전력 샘플들을 수집하도록 구성되고, 각각의 전력 샘플은 각자의 전력 도메인과 연관된 온도, 소비 전력, 및 전류 값들 중 적어도 하나를 포함하고, 상기 전력 관리 엔진은 상기 복수의 전력 센서들에 커플링되며,
    상기 장치는,
    상기 복수의 전력 도메인들로부터 상기 복수의 전력 샘플들을 수신하기 위한 수단;
    하나 이상의 전력 프로파일들 및 복수의 전력 스로틀링 임계치들을 생성하기 위해 대응하는 상기 전력 센서들의 위치들에 기초하여 상기 전력 샘플들을 프로세싱하기 위한 수단;
    상기 하나 이상의 전력 프로파일들에 기초하여, 펌웨어 레벨에서 복수의 전력 도메인들의 전력 버짓들을 결정하고 그리고 상기 전력 버짓들에 따라 상기 복수의 전력 도메인들의 동작들을 인에이블함으로써 제1 레이트를 갖는 글로벌 전력 제어 동작을 구현하기 위한 수단; 및
    상기 하나 이상의 전력 프로파일들에 기초하여, 상기 복수의 전력 도메인들이 하드웨어 레벨에서 상기 복수의 전력 스로틀링 임계치들에 기초하여 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하기 위한 수단으로서, 상기 로컬 전력 제어 동작들은 상기 제1 레이트보다 큰 제2 레이트들을 갖는, 복수의 로컬 전력 제어 동작들을 구현하는 것을 인에이블하기 위한 수단을 포함하는, 전자 시스템에서 전력을 관리하기 위한 장치.
KR1020237043756A 2021-06-25 2022-06-10 SoC 기반 전자 디바이스들에 대한 계층적 전력 관리 아키텍처 KR20240005970A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US202163215351P 2021-06-25 2021-06-25
US202163215355P 2021-06-25 2021-06-25
US63/215,351 2021-06-25
US63/215,355 2021-06-25
US17/701,552 2022-03-22
US17/701,552 US11733757B2 (en) 2021-06-25 2022-03-22 Hierarchical power management architecture for SoC-based electronic devices
PCT/US2022/072871 WO2022272214A1 (en) 2021-06-25 2022-06-10 Hierarchical power management architecture for soc-based electronic devices

Publications (1)

Publication Number Publication Date
KR20240005970A true KR20240005970A (ko) 2024-01-12

Family

ID=82403447

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237043756A KR20240005970A (ko) 2021-06-25 2022-06-10 SoC 기반 전자 디바이스들에 대한 계층적 전력 관리 아키텍처

Country Status (5)

Country Link
EP (1) EP4359880A1 (ko)
KR (1) KR20240005970A (ko)
BR (1) BR112023025926A2 (ko)
TW (1) TW202324034A (ko)
WO (1) WO2022272214A1 (ko)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7337339B1 (en) * 2005-09-15 2008-02-26 Azul Systems, Inc. Multi-level power monitoring, filtering and throttling at local blocks and globally
US8601288B2 (en) * 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
US8769316B2 (en) * 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US9074947B2 (en) * 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US9235252B2 (en) * 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US9575537B2 (en) * 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US20160070327A1 (en) * 2014-09-08 2016-03-10 Qualcomm Incorporated System and method for peak current management to a system on a chip
US10877530B2 (en) * 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package

Also Published As

Publication number Publication date
WO2022272214A1 (en) 2022-12-29
TW202324034A (zh) 2023-06-16
EP4359880A1 (en) 2024-05-01
BR112023025926A2 (pt) 2024-02-27

Similar Documents

Publication Publication Date Title
US20230071775A1 (en) Method and apparatus for performing power analytics of a storage system
USRE47658E1 (en) Heat dissipation system for computers
US7779276B2 (en) Power management in a power-constrained processing system
US20180284857A1 (en) Thermal throttling for memory devices
WO2013096265A1 (en) Apparatus and method for managing power on a shared thermal platform for a multi-processor system
US20050216607A1 (en) Power managed busses and arbitration
US11899964B2 (en) Methods and systems for memory bandwidth control
JP2007042091A (ja) プロセッサモジュールの電力監視
US11243602B2 (en) Low power state implementation in a power management circuit
US11733757B2 (en) Hierarchical power management architecture for SoC-based electronic devices
US11829637B2 (en) Methods and systems for memory bandwidth control
JP3924544B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
KR20240005970A (ko) SoC 기반 전자 디바이스들에 대한 계층적 전력 관리 아키텍처
US20120215969A1 (en) Storage device and control method thereof
WO2022272213A1 (en) Dynamic power management for soc-based electronic devices
CN117461011A (zh) 用于基于SoC的电子设备的分级功率管理架构
US20230176977A1 (en) Throttling schemes in multicore microprocessors
WO2012127636A1 (ja) 情報処理システム、共有メモリ装置及びメモリデータ保存方法
KR20240042126A (ko) 프로세서 클러스터들 내의 동적 전압 및 주파수 스케일링 (dvfs)
CN117957510A (zh) 处理器集群内的动态电压和频率调整(dvfs)
US20220413583A1 (en) Precise power cycle management in data storage devices
EP4396686A1 (en) Methods and systems for memory bandwidth control
TWI805855B (zh) 電力輔助之資訊處理系統、電力輔助單元及用以調節至資訊處理系統之負載的電力之方法
CN117882058A (zh) 用于存储器带宽控制的方法和系统
Gough et al. Platform power management

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal