CN117882028A - 基于限制硬件强制的功率控制的功率管理 - Google Patents
基于限制硬件强制的功率控制的功率管理 Download PDFInfo
- Publication number
- CN117882028A CN117882028A CN202280058308.4A CN202280058308A CN117882028A CN 117882028 A CN117882028 A CN 117882028A CN 202280058308 A CN202280058308 A CN 202280058308A CN 117882028 A CN117882028 A CN 117882028A
- Authority
- CN
- China
- Prior art keywords
- power
- circuit
- power control
- integrated circuit
- components
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims description 160
- 230000004044 response Effects 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 10
- 230000009467 reduction Effects 0.000 abstract description 28
- 238000000034 method Methods 0.000 abstract description 23
- 230000011664 signaling Effects 0.000 abstract 1
- 238000012546 transfer Methods 0.000 description 79
- 230000007246 mechanism Effects 0.000 description 46
- 230000006854 communication Effects 0.000 description 39
- 238000004891 communication Methods 0.000 description 39
- 238000007726 management method Methods 0.000 description 39
- 230000002093 peripheral effect Effects 0.000 description 33
- 230000000694 effects Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 25
- 239000000872 buffer Substances 0.000 description 20
- 230000005540 biological transmission Effects 0.000 description 18
- 230000008901 benefit Effects 0.000 description 17
- 239000004744 fabric Substances 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000013461 design Methods 0.000 description 12
- 238000004519 manufacturing process Methods 0.000 description 12
- 230000036541 health Effects 0.000 description 9
- 230000000116 mitigating effect Effects 0.000 description 8
- 230000003068 static effect Effects 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 6
- 238000012806 monitoring device Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000001105 regulatory effect Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 230000008054 signal transmission Effects 0.000 description 4
- 230000007175 bidirectional communication Effects 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013021 overheating Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
公开了用于集成电路中的功率降低管理的各种技术和电路具体实施。具体地,集成电路(例如,片上系统)中的功率管理器电路可修改集成电路中的各种部件的功率预算,以减少由指示电压调节器过载(例如,电压下降)的外部信令引起的功率控制量。
Description
背景技术
技术领域
本文所述的实施方案涉及集成电路中的功率管理(power management),并且更具体地,涉及用于控制到集成电路的电力传输(power delivery)的触发电路。
附图说明
当与附图结合时,通过参考根据本公开中描述的实施方案的目前优选的但仅为例示性实施方案的以下详细描述,将更充分地理解在本公开中描述的实施方案的方法与装置的特征和优点,在附图中:
图1是包括耦接到存储器和功率管理单元(PMU)的片上系统(SOC)的系统的一个实施方案的框图。
图2是PMU的一个实施方案的框图。
图3是PMU的另一实施方案的框图。
图4是全局功率控制电路的一个实施方案的框图。
图5是存储器控制器管线的一个实施方案的框图。
图6是速率限制器小组件的一个实施方案的框图。
图7是片上系统(SOC)的另一实施方案的框图。
图8是功率管理机制的一个实施方案的框图。
图9是示出功率控制窗口的时序图。
图10是示出操作功率管理处理器的一个实施方案的流程图。
图11是示出根据一些实施方案的用于在集成电路中降低功率的方法的流程图。
图12是示出根据一些实施方案的用于在集成电路中降低功率的另一方法的流程图。
图13是电力传输系统的一个实施方案的框图。
图14是示出包含计算机系统、计算机可读介质和制造系统(fabrication system)的一个实施方案的框图。
图15是示例系统的一个实施方案的框图。
在以下描述中,阐述了许多具体细节,以提供对所述实施方案的透彻理解。然而,本领域的普通技术人员应当认识到,可在没有这些具体细节的情况下实践所公开的实施方案的方面。在一些情况下,未详细示出熟知的电路、结构、信号、计算机程序指令和技术,以免模糊所公开的实施方案。
具体实施方式
图1是包括耦接到存储器120和功率管理单元(PMU)140的片上系统(SOC)110的系统的一个实施方案的框图。PMU 140可以被配置为向SOC 110和可以包含于系统中诸如存储器120的其他部件供电。例如,PMU 140可以被配置为生成一个或多个供电电压,以向SOC110供电,并且可以进一步被配置为生成用于系统的其他部件(图1中未示出)的供电电压。除此之外,PMU 140(或耦接到PMU 140的伴随电路)可以被配置为监测供电电压并且检测瞬态欠压条件、过电流条件、功率限制条件、温度条件或可能导致SOC 110中的错误操作的其他条件。当发生这种条件时(例如,SOC 110的电负载超过PMU 140的容量),PMU 140可以向SOC 110断言触发输出信号。作为一个示例,对于功率限制条件,可以在不同的时间常数上对功率进行平均,其中不同时间常数的功率限制不同(例如,短平均时间常数可以具有比较长时间平均时间常数高的限制),并且可以基于超过针对不同时间常数的功率限制中的任一个功率限制来断言触发。在一些实施方案中,可以使用电流平方(I2)RMS约束来应用功率限制。
在各种实施方案中,触发输出信号可以经由有线传输(例如,两个部件之间的硬连线接口)或串行通信接口(例如,双向通信接口)传送到SOC 110。有线触发信号传输可被提供给包含到SOC 110中的全局功率控制电路130,可接收触发输入,而串行触发信号传输可经由串行控制器124和/或通信结构170直接提供给处理器引擎(例如,处理器集群150、GPU160或外围设备180)。串行控制器124可以是在处理器引擎和PMU 140之间提供双向通信的系统功率管理接口(SPMI)。虽然示出的串行控制器124通过图1中的通信结构170与处理器引擎通信,但是在各种实施方案中,串行控制器124可以直接与处理器引擎中的一个或多个处理器引擎通信。下文关于图2中所描绘的PMU 140的实施方案更详细地讨论有线触发信号传输和串行触发信号传输。虽然本文使用SOC实施方案作为示例,但是在其他实施方案中,可以使用包括耦接到通信结构的多个集成电路的系统。
顾名思义,SOC 110的部件可集成到单个半导体基板上作为集成电路“芯片”。在所示的实施方案中,SOC 110的部件包括至少一个处理器集群150、至少一个图形处理单元(GPU)160、一个或多个外围部件(例如,外围部件180(更简要地说,“外围设备”))、至少一个存储器控制器122、全局功率控制电路130和通信结构170。部件150、160、180、122和130可全部耦接到通信结构170。存储器控制器122在使用期间可耦接到存储器120。在一些实施方案中,可存在多于一个耦接到对应存储器的存储器控制器。在这种实施方案中,存储器地址空间可以任何期望方式跨存储器控制器映射。在所示的实施方案中,处理器集群150可以包括多个处理器(P)152。处理器152可形成SOC 110的中央处理单元(CPU)。处理器集群150可进一步包括一个或多个协处理器(例如,图1中的协处理器154),该协处理器可针对处理器指令集的子集而优化,并且可由处理器152使用以执行子集中的指令。例如,协处理器154可以是经优化以执行向量和矩阵运算的矩阵引擎。
如上所述,处理器集群150可包括可用作SOC 110的CPU的一个或多个处理器152。系统的CPU包括执行系统主要控制软件诸如操作系统的一个或多个处理器。通常,由CPU在使用过程中执行的软件可控制系统的其他部件,以实现系统的期望的功能。处理器还可执行其他软件诸如应用程序。应用程序可提供用户功能,并且可依靠操作系统进行下层设备控制、调度、存储器管理等。因此,处理器也可被称为应用处理器。
通常,处理器可包括被配置为执行在由处理器实施的指令集架构中定义的指令的任何电路系统和/或微码。处理器可涵盖在具有作为片上系统(SOC 110)或其他集成水平的其他部件的集成电路上实施的处理器核心。处理器还可包括离散的微处理器、处理器核心和/或集成到多芯片模块具体实施中的微处理器、被实施为多个集成电路的处理器等等。
存储器控制器122通常可包括用于从SOC 110的其他部件接收存储器操作并用于访问存储器120以完成存储器操作的电路。存储器控制器122可以被配置为访问任何类型的存储器120。例如,存储器120可以是静态随机存取存储器(SRAM)、诸如包括双倍数据速率(DDR、DDR2、DDR3、DDR4等)DRAM的同步DRAM(SDRAM)的动态RAM(DRAM)。可支持DDR DRAM的低功率/移动版本(例如,LPDDR、mDDR等)。存储器控制器122可包括存储器操作队列,以用于对这些操作进行排序(并且潜在地重排序)并且将这些操作呈现给存储器120。存储器控制器122还可包括用于存储等待写入存储器的写数据和等待返回至存储器操作来源的读数据的数据缓冲器。在一些实施方案中,存储器控制器122可包括用于存储最近访问的存储器数据的存储器高速缓存。例如,在SOC具体实施中,存储器高速缓存可通过在预期很快要被再次访问的情况下避免从存储器120重新访问数据来降低SOC中的功耗。在一些情况下,存储器高速缓存也可被称为系统高速缓存,其与私有高速缓存诸如L2高速缓存或处理器中的高速缓存不同,该私有高速缓存只服务于某些部件。除此之外,在一些实施方案中,系统高速缓存不需要位于存储器控制器122内。
外围设备180可以是包括在SOC 110中的附加硬件功能的任何集合。例如,外围设备180可包括视频外围设备,诸如被配置为处理来自相机或其他图像传感器的图像捕捉数据的图像信号处理器、视频编码器/解码器、扩展器、旋转器、混合器、显示控制器等。外围设备可包括音频外围设备,诸如麦克风、扬声器、至麦克风和扬声器的接口、音频处理器、数字信号处理器、混合器等。外围设备可包括用于SOC 110外部的各种接口的接口控制器,包括诸如通用串行总线(USB)、包含PCI Express(PCIe)的外围部件互连(PCI)、串行和并行端口等接口。到外部设备的互连由图1中延伸到SOC 110外部的虚线箭头示出。外围设备可包括联网外围设备诸如介质访问控制器(MAC)。可包括任何一组硬件。
通信结构170可为用于在SOC 110的部件之间进行通信的任何通信互连件和协议。通信结构170可为基于总线的,包括共享总线配置、交叉开关配置和具有桥的分层总线。通信结构170还可为基于分组的,并且可为具有桥的分层、交叉开关、点到点或其他互连件。
需注意,SOC 110的部件的数量(以及图1中所示的那些部件的子部件(诸如每个处理器集群150中的处理器152)的数量)可因实施方案而异。除此之外,当包括多个处理器集群时,一个处理器集群150中的处理器152的数量可以不同于另一处理器集群150中的处理器152的数量。每个部件/子部件的数量可多于或少于图1所示的数量。
如本文所述,PMU 140可以被配置为在检测到可能导致SOC 110中的错误操作的各种条件时断言一个或多个触发信号。图2是PMU 140的一个实施方案的框图。在所示的实施方案中,PMU 140包括电压调节器142和电力传输触发电路144。在某些实施方案中,电力传输触发电路144被配置为监测电压调节器142中的供电电压,并且当在电压调节器中检测到瞬态欠压条件时提供触发信号。例如,当由电压调节器142提供的供电电压下降到阈值(例如,欠压阈值)以下时,电力传输触发电路144可以提供触发信号。
图3为PMU 140的另一实施方案的框图。在所示的实施方案中,PMU 140包括电压调节器142、有线电力传输触发电路144和串行电力传输触发电路146。如图3所示,PMU 140可以包括连接到多组电力传输触发电路(例如,有线电力传输触发电路144A、144B、144C和串行电力传输触发电路146A、146B、146C)的多个电压调节器142(例如,电压调节器142A、142B、142C)。在PMU 140中可以设想任何数量的电压调节器142、有线电力传输触发电路144和串行电力传输触发电路146。电压调节器142A、142B、142C可表示向SOC 110的不同部分提供不同供电电压的不同电压调节器。例如,电压调节器142A可将供电电压提供到处理器集群150,而电压调节器142B将供电电压提供到GPU 160。在各种实施方案中,电压调节器142A、142B、142C可以是分级电力传输系统(例如,图9中描述的分级电力传输系统900)的一部分。
如上所述,有线电力传输触发电路144可以直接连线到SOC 110(例如,SOC 110中的全局功率控制电路130),而串行电力传输触发电路146可以经由串行通信接口(例如,SPMI)耦接到SOC 110(例如,SOC 110中的通信结构170)。在各种实施方案中,串行电力传输触发电路146包括用于与SOC 110通信(例如,经由串行控制器124)的SPMI。因此,串行电力传输触发电路146能够与SOC 110进行双向通信,而有线电力传输触发电路144提供从有线电力传输触发电路144到SOC 110的单向通信。
在某些实施方案中,有线电力传输触发电路144和串行电力传输触发电路146被配置为监测电压调节器142中的一个或多个条件(例如,电压、电流或温度),并且当条件超过由电力传输触发电路确定的各种阈值时提供触发信号。快速(纳秒级)和慢速(微秒或毫秒级)响应的各种实施方案可以在有线电力传输触发电路144或串行电力传输触发电路146中实现。在某些实施方案中,在有线电力传输触发电路144中实现快速响应,以利用有线连接的高传输速度。相反,可以在串行电力传输触发电路146中实现慢速响应,因为串行连接提供慢速响应级的信号传输速度。
在各种实施方案中,串联电力传输触发电路146与SOC 110之间的串联连接允许由SOC 110查询条件。例如,当SOC 110的操作改变或已经发生另一事件时,SOC 110可以提供对条件信息的请求。SOC 110可以通过串行通信接口向串行电力传输触发电路146提供请求查询。然后,串行电力传输触发电路146可以经由通过串行通信接口输出回到SOC 110的触发信号提供条件状态(例如,高于或低于阈值的条件值)。
在一些实施方案中,当电压调节器142中所经受的电负载超过阈值(例如,电压下降到欠压阈值以下)时提供触发信号。例如,可以使用诸如基于电压的比较器电路之类的电压感测元件来实现电压阈值比较。基于电压的比较器电路可以是通常在有线电力传输触发电路144中使用的快速响应电路。在一些实施方案中,当电压调节器142中所经受的电流超过电流阈值时(例如,当电流超过预定电流限制时)提供触发信号。电流阈值比较可由输出电流比较器电路(例如,电流感测元件)实现,例如,该输出电流比较器电路可以是用于有线电力传输触发电路144中的快速响应电路。在一些设想的实施方案中,实现电流感测能力,以监测电流条件(例如,确定电流是否超过过电流阈值)。例如,电流感测能力可以包括滤波电流感测能力,该滤波电流感测能力可以在慢速响应串行电力传输触发电路146中实现。在一些实施方案中,当电压调节器142中所经受的温度超过预定温度时提供触发信号,以便防止PMU 140中过热。温度感测通常是对可以在温度感测方案中实现的串行电力传输触发电路146的慢速响应。
以上描述提供了本文描述的不同条件下的各种响应方案的示例实施方案。然而,应当理解,对于PMU 140和SOC 110的期望操作,响应方案的位置和数量可以在电压调节器142、有线电力传输触发电路144和串行电力传输触发电路146之间变化。例如,在各种实施方案中,可以实现有线电力传输触发电路144和串行电力传输触发电路146两者,以监测同一电压调节器142中的类似操作条件(例如,电压或电流)。在这种实施方案中,有线电力传输触发电路144提供快速响应时间,而串行电力传输触发电路146提供较慢响应。
在某些实施方案中,有线电力传输触发电路144和串行电力传输触发电路146能够基于不同的响应时间以及在SOC 110中发送触发信号的位置提供不同的功率管理能力。作为示例,如图1和图3所示,有线电力传输触发电路144向全局功率控制电路130提供有线触发信号,而串行电力传输触发电路146向通信结构170提供串行触发信号,然后向诸如处理器集群150或GPU 160之类的部件提供串行触发信号。如本文所述,全局功率控制电路130能够提供快速响应和快速时钟速率控制,以便防止SOC 110或PMU 140中的功能故障。然而,由串行电力传输触发电路146提供的串行触发信号可由SOC 110中的部件(例如,处理器集群150或GPU 160)实现,以确定对SOC 110的操作的更精确控制(例如,通过使用SOC 110的部件中的动态电压和频率控制)。
因此,在某些实施方案中,有线电力传输触发电路144的阈值比串行电力传输触发电路146的阈值更接近SOC 110或PMU 140的功能故障点。有线电力传输触发电路144的阈值可以更接近SOC 110或PMU 140的功能故障点,以便在操作条件可能导致SOC 110或PMU 140的功能故障时提供快速响应。相反,当SOC 110或PMU 140距功能故障点较远时,较慢响应可能更适合。作为示例,有线电力传输触发电路144的电压阈值可以比串行电力传输触发电路146的电压阈值更接近导致SOC 110或PMU 140中的功能故障的欠压(例如,有线电压阈值低于串行电压阈值)。因此,如果电压开始缓慢下降,则可能在达到有线电压阈值之前,将首先超过串行电压阈值,并且SOC 110可以响应于来自串行电力传输触发电路146的串行触发信号。然而,如果电压快速下降,即使在达到串行电压阈值之后达到有线电压阈值,由有线电力传输触发电路144和全局功率控制电路130提供的快速响应也可能在SOC 110有机会响应串行触发信号之前发生。对有线信号的响应可以保留功能,直到执行稍后的串行触发信号读取并且SOC 110对其做出反应。这种分级响应方案可以提供SOC 110和PMU 140的改进的性能,同时防止设备中的功能故障。
在一些实施方案中,响应方案是基于电力传输系统中的层级(例如,电压调节器142A、142B、142C之间的层级)来分级的。例如,电压调节器142A可具有比电压调节器142B更高的层级。因此,来自有线电力传输触发电路144A或串行电力传输触发电路146A的触发信号在确定功率降低方面可以具有比有线电力传输触发电路144B或串行电力传输触发电路146B更高的层级(例如,更高的优先级)。除此之外,在分级电力传输系统中,功率降低响应(例如,部件或电源的功率降低)可在一个部件中由用于另一部件的触发信号触发。例如,来自有线电力传输触发电路144B或串行电力传输触发电路146B的触发信号可以触发电压调节器142A中的功率降低。
在各种实施方案中,电压调节器142中的一个或多个电压调节器耦接到电池(或其他电源单元),以向SOC 110供电。在一些实施方案中,有线电力传输触发电路144或串行电力传输触发电路146中的一者或多者被配置为监测电池中的电压。电池中电压的直接监测可以帮助防止由于低电池电荷状态而导致的SOC 110中的掉电。
返回到图1,在各种实施方案中,全局功率控制电路130从PMU 140接收一个(多个)触发信号。当正在发生与触发信号相关联的事件时,全局功率控制电路130可以通过快速降低部件操作的时钟频率来做出响应,以防止SOC 110或PMU 140中的功能故障。根据本公开,集成电路(例如,SOC 110)可以包括多个部件(例如,处理器集群150、GPU 160、外围设备180)和(经由通信结构170)耦接到多个部件的全局功率控制电路130。
图4是全局功率控制电路130的一个实施方案的框图。在所示的实施方案中,全局功率控制电路130包括触发逻辑电路132和速率控制电路134。全局功率控制电路130从PMU140接收一个(多个)触发信号。在某些实施方案中,触发信号是关于SOC 110的时钟周期的异步触发信号。例如,触发信号可以在SOC 110的时钟周期期间的任何时间由全局功率控制电路130接收。
在各种实施方案中,触发逻辑电路132从PMU 140接收触发信号,并基于接收到的触发信号确定功率降低信号。例如,功率降低信号可以是以SOC 110的时钟速率提供给SOC110中的一个或多个部件的同步信号。然后,该一个或多个部件可以基于接收到的功率降低信号来实现功率降低或度量。在各种实施方案中,触发逻辑电路132包括使能、迟滞和同步器的组合,以将异步触发信号转换为同步功率降低信号。
由触发逻辑电路132实现以提供功率降低信号的技术的示例包括时钟抖动、时钟门控、选择性脉冲移除、时钟分频等。这些技术对于连续操作SOC 110而没有错误可能是有效的,因为时钟频率的降低抵消了在降低电压下更慢地评估晶体管的影响。例如,将时钟频率除以2(相对快速的操作)将性能降低了大约1/2。在某些情况下,为了确保无错误操作,性能降低可能甚至更大,例如,75%或更大。因此,全局功率控制电路130可耦接到SOC 110的各种部件(例如,处理器152或GPU 160)或可至少耦接到各种部件的时钟资源(例如,锁相环路(PLL)、延迟锁定环路(DLL)、时钟分频器、时钟门控器、时钟树等),以实现可帮助确保欠压操作期间的无错误操作(或正确操作)的频率降低。
虽然触发逻辑电路132对来自PMU 140的触发信号提供相对快速的功率降低响应,但是在SOC 110的各种实施方案中可能需要用于降低时钟频率的更快的响应时间。例如,在SOC 110为多裸片SOC(例如,SOC 110具有作为单个芯片操作的多个芯片)的实施方案中,可能需要可以降低时钟频率的更快的响应时间,来防止功能故障,因为大量并行事务可能会让PMU 140超限。
在各种实施方案中,全局功率控制电路130中的速率控制电路134实现更快的响应时间,以触发由全局功率控制电路接收的信号。例如,速率控制电路134可以包括基于接收到的触发信号来控制SOC 110中的时钟速率的结构或其他逻辑。例如,速率控制电路134可以响应于接收到触发信号而快速降低通信结构170中时钟的频率。如图4所示,速率控制电路134可以从PMU 140接收所选择的触发信号。在某些实施方案中,使用所选择的电力传输触发电路144(如图2和图3所示)和速率控制电路之间适当位置处的布线,将所选择的触发信号提供到速率控制电路134。例如,速率控制电路134的布线可以从所选择的电力传输触发电路144和触发逻辑电路132之间的布线分支出来。因此,速率控制电路134可以从所选择的电力传输电路144异步地接收所选择的触发信号。在一个设想的实施方案中,从PMU 140中向通信结构170供电的一个或多个电压调节器142接收所选择的触发信号。
在某些实施方案中,速率控制电路134基于接收所选择的触发信号来控制SOC 110或SOC 110的一个或多个部件的时钟速率。例如,速率控制电路134可以基于接收所选择的触发信号来降低时钟速率。由于(从SOC 110的时钟周期)异步地接收所选择的触发信号,所以速率控制电路134能够异步地降低时钟速率,并且在降低SOC 110中的功率之前不等待另一时钟周期。降低时钟速率可以降低SOC 110中的功耗,从而防止PMU 140或SOC 110中的功能故障。速率控制电路134提供快速异步响应时间,以降低接收触发信号时的时钟速率(例如,在几纳秒内)。由速率控制电路134提供的响应时间比在SOC 110的部件中使用动态电压和频率控制的功率控制的响应时间快几个数量级(例如,由速率控制电路134响应的时间窗口比由SOC 110的部件响应的时间窗口小几个数量级)。这种快速响应时间可改进多裸片SOC系统的功率管理中针对功能故障的保护。
在一些实施方案中,如图4所示,速率控制电路134从触发逻辑132接收功率降低信号。例如,在一个设想的实施方案中,速率控制电路134可接收用于SOC 110中的CPU(处理器152)的功率降低信号。如上所述,功率降低信号与SOC 110的时钟周期同步。相应地,速率控制电路134可基于功率降低信号来实现较慢但同步的时钟速率降低。然而,将所选择的触发信号和功率降低信号两者提供到速率控制电路134中,可以在SOC 110中提供冗余功率降低响应,以防止PMU 140或SOC 110中的功能故障。
在一些实施方案中,如图4所示,触发逻辑132可从由PMU 140管理的另一SOC 110’(例如,另一芯片或裸片)接收功率降低信号。触发逻辑132可实现来自SOC 110’的功率降低信号,以向SOC 110中的部件提供功率降低信号。在一些实施方案中,触发逻辑132可以向由PMU 140管理的另一SOC 110”提供功率降低信号。另一SOC 110”随后可实现功率降低方案(例如,使用SOC 110”中的触发逻辑电路),以根据接收到的功率降低信号来降低功率。提供/接收来自其他SOC的功率降低信号的具体实施允许触发逻辑132和SOC 110成为多裸片(例如,多芯片)功率降低方案的一部分。
返回到图1,在各种实施方案中,可以通过存储器控制器122在SOC中提供速率限制。例如,存储器控制器122可实现对与存储器控制器相关联的管线中的事务速率的监测,并且根据需要减慢事务。减慢事务可防止或减少由跨越许多来源(例如,多裸片配置中的多个SOC)的许多事务引起的PMU 140中的电源下降。
图5是存储器控制器管线500的一个实施方案的框图。管线500的描绘是存储器控制器管线的一个实施方案的简化框图。应当理解,管线500和存储器控制器管线的部件可在图5描绘的范围之外变化,而不偏离本文的说明书和权利要求书的范围。例如,附加部件或元件可包含于存储器控制器管线中和/或部件或元件的位置可变化。
存储器控制器管线500可以包括多种控制逻辑和数据结构,以对存储器请求进行排队、在请求之间进行仲裁,并且将存储器请求传输到存储器高速缓存,并且最终在存储器高速缓存未命中的情况下传输到存储器120。通信接口550A-550B可以是通信结构170的一部分,并且可以将来自SOC 110的其他部件的存储器请求提供给存储器控制器122。请求可被接收到请求缓冲器540A和540C中,请求缓冲器可在请求流经存储器控制器管线500时跟踪请求,并且通过在通信接口550A-550B上返回数据(用于读取)或更新存储器高速缓存或存储器120(用于写入)来完成。响应缓冲器540B和540D可以是针对读事务要被传输回请求部件的读数据的缓冲器以及针对其他响应(例如,针对某些写事务的完成响应以及针对一致性事务的一致性请求)的缓冲器。可存在用于其他通信接口550(图5中未示出)的更多请求缓冲器和响应缓冲器。请求缓冲器540A和540C(以及其他请求缓冲器)可将输入提供到存储器仲裁器525中,该存储器仲裁器可仲裁到存储器高速缓存530中的请求。由存储器高速缓存530接收的请求可以通过标签和目录管道520,该标签和目录管道可以包括用于存储器高速缓存的标签存储器(存储标识在存储器高速缓存530中高速缓存的高速缓存块的地址标签)。在一个实施方案中,标签和目录管道520可以包括一致性目录,该一致性目录跟踪SOC 110中的哪些一致性部件正在高速缓存来自存储器的高速缓存块的副本。一致性目录和相关逻辑可以生成一致性请求,该一致性请求可以经由响应缓冲器540B和540D被路由到部件。
如果请求是存储器高速缓存中的命中(例如,地址与标签存储器中的标签中的一个标签匹配),则标签和目录管道520请求可被放置在数据管道队列560中,以访问高速缓存数据存储器595。读仲裁器565A可在数据管道队列560中的读请求之间仲裁,以读取高速缓存数据存储器595,而写仲裁器565B可在数据管道队列560中的写请求之间仲裁,以写入高速缓存数据存储器595。来自高速缓存数据存储器595的读数据可以被提供给存储器输出缓冲器580。对于使用写响应的那些写请求,写响应也可以被放置在存储器输出缓冲器580中。
如果请求在存储器高速缓存中未命中(例如,地址与标签存储器中的标签不匹配),则标签和目录管道520可以将请求放置在存储器队列570中,以传输到存储器120。存储器队列570可连接到访问存储器120的存储器通道控制器。数据(用于读请求)或可选的写完成(用于写请求)可稍后由存储器通道控制器返回到存储器输出缓冲器580。
如果数据要被装入存储器高速缓存530中,则来自存储器输出缓冲器580的数据/写响应可以被提供给标签和目录管道520,并且还可以被提供给输出仲裁器590B、590D,输出仲裁器可以仲裁,以将数据/写响应分别输出到响应缓冲器540B、540D。随后可以通过通信接口550A-550B向请求部件提供数据/写响应。
存储器高速缓存530可包括多个区段或平面,该区段或平面处理映射到存储器控制器122的存储器地址空间的不同部分。平面可以允许多个存储器请求并行进行。图5示出了作为存储器高速缓存530的一个平面,但可类似地配置其他平面。可存在用于每个平面的存储器仲裁器525。
在各种实施方案中,多个速率限制器510被放置在整个管线500中。例如,速率限制器510可以被放置在管线500内的各个仲裁点处。图5示出了速率限制器510的位置示例。在所示的实施方案中,速率限制器510A被放置在读仲裁器565A或写仲裁器565B与数据管道队列560之间的连接处,速率限制器510B被放置在标签和目录管道520与存储器仲裁器525之间的连接处,速率限制器510C被放置在输出仲裁器590B和590D与响应缓冲器540B和540D之间的连接处,并且速率限制器510D被放置在响应缓冲器540B和540D与通信接口550A、550B之间的连接处。管线500中速率限制器510的数量和位置(例如,仲裁点)可以根据管线500中期望的事务速率的控制而变化。
可以实现速率限制器510,以在典型高活动性的情况下主动限制管线500中的峰值功率水平。在各种实施方案中,速率限制器510通过在仲裁点处插入气泡(例如,失速)周期来减少命令流。在某些实施方案中,速率限制器510默认被禁用,但可由系统(例如,SOC 110或存储器控制器122)配置(例如,调谐),以通过管线500提供期望的功耗上限。例如,每个速率限制器510位置可以具有与其相关联的速率限制器小组件。
图6是速率限制器小组件600的一个实施方案的框图。速率限制器小组件600可以在本文所述的任何速率限制器510中实现。速率限制器小组件600可以提供对速率限制器510的失速控制信号的操作和生成的控制。在所示的实施方案中,速率限制器小组件600包括速率限制器模式生成电路610、本地活动检测电路620和速率限制器控制电路630。
速率限制器模式生成电路610可以包括模式仲裁器612、模式寄存器614和指针616。速率限制器模式生成电路610可使用Vmin模式输入、Vnom模式输入或Vmax模式输入来编程。速率限制器模式输出可基于提供给模式仲裁器612的操作点输入(例如,存储器操作点)来确定。在各种实施方案中,速率限制器模式生成电路610通过根据来自模式仲裁器612的输入循环通过模式寄存器614来确定速率限制器模式。例如,与较低性能(较低功率)操作点相比,可以针对具有更多失速周期的较高性能(较高功率)操作点生成不同模式。
在某些实施方案中,实现本地活动检测电路620,以跟踪本地存储器活动。本地活动检测电路620包括:移位寄存器622,该移位寄存器接收历史深度输入和活动指示输入;活动计数器624,该活动计数器接收活动指示输入;以及活动阈值比较器626,该活动阈值比较器用于将活动计数与活动阈值进行比较。例如,活动指示可以包括本地活动指示,诸如仲裁器的验证、有效传递(例如,标签管道有效传递)、读使能控制、写使能控制、完成缓冲器写仲裁器授予、完成缓冲器旁路和下游接口仲裁器授予。
移位寄存器622可以是用于跟踪活动历史的可配置寄存器。例如,历史深度可以编程移位寄存器,以在与活动阈值进行比较之前以设定的周期数量(例如,32个周期、16个周期或8个周期)跟踪历史。活动计数器624可以对编程到移位寄存器622中的设定的周期数量期间的活动进行计数。此时,活动量与活动阈值比较器626中的活动阈值进行比较,以在活动高于预定活动阈值时,生成原始失速信号输出。
原始失速信号被提供给速率限制器控制电路630,该速率限制器控制电路可以根据编程的速率限制器模式等来选择性地阻止或传递原始失速信号。使能仲裁器632可用速率限制器模式编程,并且作出由速率限制器控制电路630实现的模式的确定。一种模式可以是“静态接通”,其中,传递原始失速信号,并且从速率限制器小组件600输出失速信号,其中,速率限制器模式由速率限制器模式生成电路610确定。另一种模式可以是“静态关闭”,其中,阻止原始失速信号,并且没有发生速率限制。例如,如果已知给定的存储器操作点的功率足够低,因此不会导致PMU电压下降,则可以使用关闭模式。
可以设想附加实施方案具有包含于本文所述的系统中的任一个系统中的功率管理电路(PMGR)。图7是包括耦接到存储器120和功率管理单元(PMU)140的片上系统(SOC)110的系统的一个实施方案的框图。PMU 140可以被配置为向SOC 110和可以包含于系统中诸如存储器120的其他部件供电。例如,PMU 140可以被配置为生成一个或多个供电电压,以向SOC 110供电,并且可以进一步被配置为生成用于系统的其他部件(图7中未示出)的供电电压。除此之外,PMU 140(或耦接到PMU 140的伴随电路)可以被配置为监测供电电压并且检测瞬态欠压条件或可能导致SOC 110中的错误操作的其他过载条件。当发生这种条件时(通常由于SOC 110的电负载超过PMU 140的容量),PMU 140可以向SOC 110断言触发输入。在所示的实施方案中,包含到SOC 110中的全局功率控制电路130可接收触发输入。虽然本文使用SOC实施方案作为示例,但是在其他实施方案中,可以使用包括耦接到通信结构的多个集成电路的系统。
顾名思义,SOC 110的部件可集成到单个半导体基板上作为集成电路“芯片”。在所示的实施方案中,SOC 110的部件包含至少一个处理器集群150、至少一个图形处理单元(GPU)160、一个或多个外围部件(例如,外围部件180(更简要地说,“外围设备”))、存储器控制器122、功率管理电路(PMGR)700、全局功率控制电路130和通信结构170。部件150、160、180、122和700可全部耦接到通信结构170。存储器控制器122在使用期间可耦接到存储器120。在一些实施方案中,可存在多于一个耦接到对应存储器的存储器控制器。在这种实施方案中,存储器地址空间可以任何期望方式跨存储器控制器映射。在所示的实施方案中,处理器集群150可以包括多个处理器(P)152。处理器152可形成SOC 110的中央处理单元(CPU)。处理器集群150可进一步包括一个或多个协处理器(例如,图7中的协处理器154),该协处理器可针对处理器指令集的子集而优化,并且可由处理器152使用以执行子集中的指令。例如,协处理器154可以是经优化以执行向量和矩阵运算的矩阵引擎。
PMGR 700可以被配置为管理SOC 110中的功耗。如图7所示,PMGR 700可以包括遥测表702、功率管理处理器(PMP)704以及可以存储在PMGR 700内的存储器(例如,本地静态随机存取存储器(SRAM)或只读存储器等本地存储器)中和/或存储器120中的功率预算控制代码710。例如,功率预算控制代码710可以存储在只读存储器或其他形式的非易失性存储器中,并且可以在系统的初始化期间被加载到PMGR 700/存储器120中。遥测表702可以是任何类型的存储器(例如,静态随机存取存储器(SRAM)、寄存器等)。SOC 110的各种部件可以以某种程度的规律性以“推”模型向PMGR 700报告活动水平、性能信息、功耗数据等,并且因此可用于PMGR 700中的分析,而不需要PMGR 700轮询各种部件来收集信息。更具体地,在该实施方案中,除了功率预算控制代码710之外,PMP 704还可以被配置为执行代码,以分析遥测表中的数据。
如前所述,PMU 140可以被配置为当检测到欠压事件时断言触发信号。当发生这种事件时,SOC 110(并且更具体地,全局功率控制电路130)可通过使用时钟抖动、时钟门控、选择性脉冲移除、时钟分频、各种部件内的控制等技术来降低处理性能并且因此降低功率等,从而快速降低部件操作的时钟频率来做出响应。虽然这些技术对于连续操作而没有错误可能是有效的(因为时钟频率的降低抵消了在降低电压下更慢地评估晶体管的影响),但性能降低可能是显著的。例如,将时钟频率除以2(相对快速的操作)将性能降低了大约1/2。在某些情况下,为了确保无错误操作,性能降低可能甚至更大,例如,75%或更大。因此,全局功率控制电路130可耦接到SOC 110的各种部件(图7中未明确描绘)或可至少耦接到各种部件的时钟资源(例如,锁相环路(PLL)、延迟锁定环路(DLL)、时钟分频器、时钟门控器、时钟树等),以实现可帮助确保欠压操作期间的无错误操作(或正确操作)的频率降低。在一个实施方案中,全局功率控制电路130可以被配置为将向全局功率控制电路130断言触发输入的频率(例如,多久一次)记录在遥测表702中(或全局功率控制电路130参与的频率,这取决于触发输入断言的频率),如经由图7中的虚线箭头所示。
在许多情况下,不太剧烈的性能降低将足以减小负载,使得不太频繁地发生欠压事件。例如,如果由于PMU 140轻微过载而发生欠压事件,则防止该事件发生的负载减少量相对较小,并且可以通过暂时减少系统中的一个或多个可控部件的功耗来实现,性能略有下降,但仍在PMU 140的容量内。PMP 704和功率预算控制代码710可以用于尝试降低欠压事件的频率,或者更具体地,降低调用全局功率控制电路来提供欠压控制的频率。例如,在一个实施方案中,功率预算控制代码710可以分析遥测表数据并且可以确定在给定的时间窗口期间欠压事件的频率或者全局功率控制电路130参与降低功耗的时间量。功率预算控制代码710可修改在下一时间窗口中对一个或多个部件的功率预算,以尝试减少欠压事件的发生。例如,可以减少功率预算,并且因此部件可以在下一个时间窗口中消耗更少的功率,从而减少PMU 140上的总负载电流。虽然可由部件实现的性能可在下一时间窗口中降低,但欠压事件的减少和由于欠压事件而发生的严重性能损失可降低,并且总体性能可更高。例如,功率预算控制代码710可以尝试将欠压触发减少到指定的百分比(例如,给定的时间窗口的1%)。附加细节将在下文进一步提供。
部件中的至少一些部件可以被配置为基于功率预算来控制功耗。例如,处理器集群150、GPU 160以及外围设备180中的一个或多个外围设备可以包括功率控制电路(PwrCtl)720A-720C,该功率控制电路包括相应的功率预算722A-722C。功率控制电路720A-720C可监测相应部件的操作并且测量/估计功耗。功率控制电路720A-720C可以将测量/估计的功耗与功率预算进行比较。如果预算耗尽或降低到阈值以下,则功率控制电路720A-720C可以调用各种功耗缓解机制。例如,功率控制电路720A可采用缓解机制,例如,停用处理器152中的一个或多个处理器和/或停用处理器152中的一个或多个管线。可降低指令发布速率,在管线中插入气泡,使得对应电路不主动评估每个周期。可以使用一个或多个缓解机制的任何集合。类似地,GPU 160可减少活动管线的数量,限制指令发布速率和/或实现任何其他缓解机制。缓解机制可以特定于被控制的给定部件,并且不同的部件可以根据需要采用不同的机制或者一些类似的机制和一些特定的机制。PMP 704/功率预算控制代码710可以与特定机制无关,设置预算722A-722C和遵守预算722A-722C的细节是由功率控制电路720A-720C实现的。
如果功率预算控制代码710减少功率控制电路720A-720C中的一个或多个功率控制电路中的功率预算722A-722C,并且欠压事件的频率仍然高于下一个时间窗口中期望的频率,则功率预算710可以是下一个时间窗口中进一步的功率预算。可以使用任何用于减少的算法。例如,可以将每个预算减少一定量,以实现减少,从而将性能减少相对均匀地分布在可以控制的部件上。在另一算法中,可在不同时间窗口中减少不同预算722A-722C,从而在一个或多个部件的不同子集之间旋转减少,并且然后在后续时间窗口中将减少的功率预算返回到原始值。
需注意,虽然一些示例实施方案被描述为功率预算控制被实现为可由PMP 704执行的代码710,但是其他实施方案可以在硬件中实现全部或一部分的功率预算控制,例如,作为状态机和/或组合逻辑。
PMGR 700可以被配置为控制外部PMU 140请求的供电电压量值。可存在由PMU 140为SOC 110生成的多个供电电压。例如,可存在用于处理器集群150的供电电压以及用于除处理器集群150之外的SOC 110的其余部分的至少一个供电电压。在一个实施方案中,相同供电电压可用于除处理器集群150之外的SOC 110的部件,并且功率门控可用于控制由供电电压供电的一个或多个独立功率域。在一些实施方案中,还可存在用于SOC 110的其余部分的多个供电电压。在一些实施方案中,还可存在用于处理器集群150和/或SOC 110中各个存储器阵列的存储器供电电压。存储器供电电压可以与供应到逻辑电路的电压一起使用,其可以具有比确保稳健存储器操作所需的电压量值更低的电压量值。PMGR 700可处于直接软件控制下(例如,软件可直接请求部件的上电和/或下电)和/或可以被配置为监测SOC 110并确定何时将各个部件上电或下电。可以经由PMGR 700来控制部件内的各种功率状态(例如,处理器152的功率状态)以及功率状态的变化排序、不同的请求电压和频率等。
如上所述,处理器集群150可包括可用作SOC 110的CPU的一个或多个处理器152。系统的CPU包括执行系统主要控制软件诸如操作系统的一个或多个处理器。通常,由CPU在使用过程中执行的软件可控制系统的其他部件,以实现系统的期望的功能。处理器还可执行其他软件诸如应用程序。应用程序可提供用户功能,并且可依靠操作系统进行下层设备控制、调度、存储器管理等。因此,处理器也可被称为应用处理器。
通常,处理器可包括被配置为执行在由处理器实施的指令集架构中定义的指令的任何电路系统和/或微码。处理器可涵盖在具有作为片上系统(SOC 110)或其他集成水平的其他部件的集成电路上实施的处理器核心。处理器还可包括离散的微处理器、处理器核心和/或集成到多芯片模块具体实施中的微处理器、被实施为多个集成电路的处理器等等。
存储器控制器122通常可包括用于从SOC 110的其他部件接收存储器操作并用于访问存储器120以完成存储器操作的电路。存储器控制器122可以被配置为访问任何类型的存储器120。例如,存储器120可以是静态随机存取存储器(SRAM)、诸如包括双倍数据速率(DDR、DDR2、DDR3、DDR4等)DRAM的同步DRAM(SDRAM)的动态RAM(DRAM)。可支持DDR DRAM的低功率/移动版本(例如,LPDDR、mDDR等)。存储器控制器122可包括存储器操作队列,以用于对这些操作进行排序(并且潜在地重排序)并且将这些操作呈现给存储器120。存储器控制器122还可包括用于存储等待写入存储器的写数据和等待返回至存储器操作来源的读数据的数据缓冲器。在一些实施方案中,存储器控制器122可包括用于存储最近访问的存储器数据的存储器高速缓存。例如,在SOC具体实施中,存储器高速缓存可通过在预期很快要被再次访问的情况下避免从存储器120重新访问数据来降低SOC中的功耗。在一些情况下,存储器高速缓存也可被称为系统高速缓存,其与私有高速缓存诸如L2高速缓存或处理器中的高速缓存不同,该私有高速缓存只服务于某些部件。除此之外,在一些实施方案中,系统高速缓存不需要位于存储器控制器122内。
外围设备180可以是包括在SOC 110中的附加硬件功能的任何集合。例如,外围设备180可包括视频外围设备,诸如被配置为处理来自相机或其他图像传感器的图像捕捉数据的图像信号处理器、视频编码器/解码器、扩展器、旋转器、混合器、显示控制器等。外围设备可包括音频外围设备,诸如麦克风、扬声器、至麦克风和扬声器的接口、音频处理器、数字信号处理器、混合器等。外围设备可包括用于SOC 110外部的各种接口的接口控制器,包括诸如通用串行总线(USB)、包含PCI Express(PCIe)的外围部件互连(PCI)、串行和并行端口等接口。到外部设备的互连由图7中延伸到SOC 110外部的虚线箭头示出。外围设备可包括联网外围设备诸如介质访问控制器(MAC)。可包括任何一组硬件。
通信结构170可为用于在SOC 110的部件之间进行通信的任何通信互连件和协议。通信结构170可为基于总线的,包括共享总线配置、交叉开关配置和具有桥的分层总线。通信结构170还可为基于分组的,并且可为具有桥的分层、交叉开关、点到点或其他互连件。
需注意,SOC 110的部件的数量(以及图7中所示的那些部件的子部件(诸如每个处理器集群150中的处理器152)的数量)可因实施方案而异。除此之外,当包括多个处理器集群时,一个处理器集群150中的处理器152的数量可以不同于另一处理器集群150中的处理器152的数量。每个部件/子部件的数量可多于或少于图7所示的数量。
根据本公开,集成电路(例如,SOC 110)可包括多个部件、耦接到多个部件的全局功率控制电路和功率管理电路。多个部件中的给定部件被配置为基于分配给给定部件的预算量来管理功耗。全局功率控制电路被配置为响应于对集成电路的触发输入而跨越多个部件应用功率控制。功率管理电路被配置为:检测由全局功率控制电路应用的功率控制是否超过阈值;并且基于由全局功率控制电路应用的功率控制超过阈值的检测,减少分配给多个部件中的至少一个部件的预算量。例如,该阈值可以包括由全局功率控制电路应用功率控制的时间百分比。
功率管理电路可以被配置为测量固定时间窗口内的时间百分比。例如,功率管理电路可以被配置为检测固定时间窗口的第一实例期间的百分比,并且可以被配置为减少固定时间窗口的下一实例的预算量,其中,该下一实例与该第一实例是连续的。例如,功率管理电路可以被配置为在给定的固定时间窗口中减少对多个部件中的第一部件的预算量,并且在另一给定的固定时间窗口中减少对多个部件中的第二部件的预算量。
图8是示出在SOC 110的一个实施方案中的各种功率管理机制的框图。这些机制在图8中基于这些机制响应于管理功率需求的速度从左到右排序。在左侧是全局功率管理机制(附图标记800),全局功率管理机制基于触发输入进行操作,以快速降低时钟频率。全局功率管理机制的主要焦点是确保当发生欠压事件时的正确性。如上所述,由于欠压事件的程度未知,所以该机制可能相当粗粒度,因此该控制可以被设计为确保最坏情况事件的正确性。
第二快的机制可以是PMP/功率预算控制机制(附图标记802)。PMP机制可能比全局机制慢,但是可以具有更细微的、细粒度的控制。PMP机制可以尝试通过采取动作来限制全局功率管理机制的参与,从而提高效率和性能。例如,如上所述,PMP机制可以包括修改基于预算实现功率管理的各种部件的功率预算。在另一实施方案中,PMP机制可以包括对到一个或多个部件的时钟频率和/或供电电压的临时修改。
除此之外,可以采用第三功率管理机制,该第三功率管理机制是基于CPU的功率控制(附图标记804)。基于CPU的功率控制机制可以采用由处理器152执行的软件,并且因此可以与操作系统和各种应用共享执行时间。基于CPU的功率控制机制可以检查许多度量,包括遥测表702中的遥测数据,而且还包括系统中的性能的各种测量。基于CPU的功率控制机制可以采用动态电压和频率控制,降低PMGR 700中的电压和频率设置(例如,“功率状态”),作为缓解全局功率控制电路130和PMP功率控制机制的功率控制缓解参与量的机制,并且根据需要将功率状态返回到其原始设置,以增强性能。基于CPU的功率控制机制可降低功率状态,例如,如果全局和基于PMP的缓解将减少到一定程度,即较低的功率状态将导致更高的整体性能/效率,即使系统运行得更慢。通常,基于CPU的机制可以采用系统范围的分析和功率管理。
全局机制可以具有大约几十到几百纳秒的时间尺度;PMP机制可以具有大约数百微秒的时间窗口;并且基于CPU的机制可以具有数百毫秒的时间尺度。即,PMP机制可以使用比全局机制的时间尺度长一个或多个十进制数量级的时间窗口来操作,并且基于CPU的机制可以具有比PMP机制长一个或多个十进制数量级的时间窗口。在一个实施方案中,基于CPU的机制的时间窗口可以是PMP机制的时间窗口的整数倍。
图9示出了使用基于PMP的功率预算控制(附图标记900A-900N)和CPU功率控制窗口902实现的功率控制窗口的实施方案。在图9中,时间从右到左以任意单位增加。如前所述,基于PMP的机制可以测量给定的PMP窗口(例如,窗口900A)中的欠压事件和/或全局功率控制活动,并且修改下一后续或紧邻窗口(例如,窗口900B)中的一个或多个部件的功率预算。
图10是示出基于PMP的功率预算控制710的一个实施方案的操作的流程图。然而,为了便于理解,框图以特定顺序示出,也可使用其他顺序。框可在基于硬件的实施方案中以组合式逻辑并行执行。用于基于软件的实施方案的由PMP 704执行的指令可以使得PMP 704执行指定的操作。例如,图10中的操作可以在图9中的给定的PMP时间窗口900A-900N的末尾处或附近执行。
功率预算控制可从遥测表702读取全局遥测(框1000)。基于该遥测数据,功率预算控制710可以确定在先前的时间窗口900A-900N中欠压事件/触发的发生是否大于期望的阈值。例如,可以根据事件的数量、全局功率控制电路130参与缓解机制的时间百分比等来测量阈值。根据需要,阈值可以是固定的或可编程的。
如果事件的发生大于期望的阈值(决策框1002,“是”分支),则功率预算控制710可以减少当前窗口中的一个或多个部件的功率预算(框1004)。如果事件的发生不大于期望的阈值(决策框1002,“否”分支),则功率预算控制710可增加当前窗口中的功率预算(框1006)。增加和/或减少可能经受一定的迟滞量。例如,如果最近的变化是功率预算的增加,则可以延迟功率预算的减少,直到在两个或更多个连续的PMP时间窗口上指示该减少。类似地,如果最近的变化是功率预算的减少,则可以延迟增加,直到在两个或更多个连续的PMP时间窗口上指示该增加。
需注意,功率预算的减少和功率预算的增加可以用不同的权重或量值来执行。例如,从窗口到窗口应用的减小可以大于从窗口到窗口应用的增大。因此,如果观察到频繁的欠压事件,则功率预算将更快速地减少,以试图快速地将更粗粒度的、基于正确性的控制降低到更低的速率。一旦实现较低速率,减缓增加功率预算可以会让系统进入某种稳定的状态。
因此,在一个实施方案中,集成电路的至少一个部件可以包括一个或多个中央处理单元(CPU)处理器。CPU可以被配置为执行多个指令,以使用动态电压和频率控制来实现集成电路中的功率控制。多个指令可在第二固定时间窗口上实现功率控制,第二固定时间窗口大于功率管理电路采用的固定时间窗口。例如,第二固定时间窗口比固定时间窗口长一个或多个十进制数量级。在一个实施方案中,第二固定时间窗口可以是固定时间窗口的整数倍。功率管理电路可以被配置为:检测由全局功率控制电路应用的功率控制小于阈值;并且基于由全局功率控制电路应用的功率控制超过阈值的检测,增加分配给多个部件中的至少一个部件的预算量。预算量的增加可以被限制为用于多个部件中的至少一个部件的最大量。功率管理电路可以被配置为当在预算量的增加和预算量的减少之间变化时应用迟滞。如前所述,在一个实施方案中,功率管理电路可以包括功率管理处理器和耦接到功率管理处理器的存储器,该存储器存储多个指令,这些指令在由功率管理处理器执行时使得功率管理处理器执行操作,这些操作包括上文针对功率管理电路描述的操作。
示例方法
图11是示出根据一些实施方案的用于在集成电路中降低功率的方法的流程图。可结合集成电路中的任何电路或其他机制使用如本文所公开的SOC的实施方案中的任何实施方案来实现方法1100。
在1102,在所示的实施方案中,集成电路从多个电压调节器接收多个供电电压,其中,集成电路包括:多个部件,这些部件生成存储器事务,以访问存储器;多个存储器控制器电路,这些存储器控制器电路控制存储器;以及通信结构,该通信结构包括多个电路,这些电路互连多个部件和多个存储器控制器电路。
在1104,在所示的实施方案中,耦接到集成电路和多个电压调节器的多个电力传输触发电路基于多个电压调节器所经受的电负载来生成多个触发信号。
在1106,在所示的实施方案中,耦接到多个电力传输触发电路的触发逻辑电路基于从多个电力传输触发电路接收的多个触发信号生成功率降低信号。
在1108,在所示的实施方案中,耦接到多个电力传输触发电路中的至少一个电力传输触发电路的速率控制电路控制通信结构中的多个电路的时钟速率,其中,基于来自电力传输触发电路中的至少一个电力传输触发电路的多个触发信号中的至少一个触发信号来降低时钟速率。
在1110,在所示的实施方案中,多个存储器控制器电路中的给定的存储器控制器电路根据在给定的存储器控制器电路内的管线中的多个位置处的多个速率限制器电路来控制存储器事务流过多个位置的速率。
图12是示出根据一些实施方案的用于集成电路中的功率降低的另一方法的流程图。可结合集成电路中的任何电路或其他机制使用如本文所公开的SOC的实施方案中的任何实施方案来实现方法1200。
在1202,在所示的实施方案中,集成电路从多个电压调节器接收多个供电电压,其中,多个电力传输触发电路耦接到集成电路和多个电压调节器。
在1204,在所示的实施方案中,当多个电压调节器所经受的电负载满足第一阈值时,通过布线耦接到集成电路的第一组电力传输触发电路生成触发信号。
在1206,在所示的实施方案中,当多个电压调节器所经受的电负载满足第二阈值时,通过多个串行通信接口耦接到集成电路的第二组电力传输触发电路生成触发信号,其中,第一阈值比第二阈值更接近集成电路的功能故障点。
示例电力传输系统:
现在转向图13,该图示出了具有电力传输系统和计算元件的系统的框图。在所示的实施方案中,系统1300包括分级电力传输系统1310和计算元件1320。分级电力传输系统1310包括第一电源转换器层级1312,该第一电源转换器层级被耦接,以从外部来源(例如,电池)接收输入电压V_in。第一电源转换器层级1312包括一个或多个电源转换器,该一个或多个电源转换器被配置为产生一个或多个第一层级稳压供电电压。这些第一层级稳压供电电压由第二电源转换器层级1314的一个或多个电源转换器接收。电源转换器层级1314的电源转换器使用一个或多个第一层级稳压供电电压来产生一个或多个第二层级稳压供电电压。这些电压被提供给计算元件1320的各种负载。
在所示的实施方案中,计算元件1320包括一个或多个集成电路(IC或SOC)1322,此处通常示出为IC 1322-1至IC 1322-N。计算元件1320是可配置且可缩放的,其中,IC的数量因具体实施而异。例如,在第一具体实施中,计算元件1320可包括单个IC裸片,而在第二具体实施中,计算元件1320可包括两个或更多个IC裸片。仅启用IC裸片的一部分的具体实施也是可能的并且被设想到的。
虽然计算元件1320因此是可缩放的,但是特定具体实施的IC的数量对于在其上执行的软件是透明的。因此,不管给定具体实施中特定IC的数量如何,在其上执行的软件可将计算元件1320视为单个实体。因此,所示的实施方案中的计算元件1320可实现计算架构,该计算架构可根据需要扩大或缩小并且能够在各种具体实施上执行软件,而不考虑这种缩放。
所示的实施方案中的每个IC 1322-1至IC 1322-N可以包括多个不同类型的电路。例如,IC 1322-1至IC 1322-N可包括各种类型的处理器核心、图形处理单元(GPU)、神经网络处理器、存储器控制器、输入/输出(I/O)电路、用于在其上实现各种网络的网络交换机等。当IC 1322-1至IC 1322-N的两个或更多个实例被实现以形成计算元件时,其上的各种功能电路可形成比使用单个IC或其一部分的具体实施的功能电路大的复合体。例如,IC1322-1和IC 1322-N可以均包括处理器核心的复合体,并且因此在具有两个或更多个IC的计算元件1320的具体实施中,实现跨多个IC的更大处理器核心复合体。一个IC的处理器核心可通过个别IC之间的一个或多个裸片对裸片接口与另一IC的处理器核心通信。
考虑到来自在IC 1322-1至IC 1322-N的实例上实现的不同类型电路的不同电力需求,因此可存在多个电源转换器来产生相应的电压,以满足这些负载的效率要求。例如,处理器核心可以具有与I/O电路不同的电力需求。因此,电源转换器层级1314可以包括适合为处理器核心提供第一第二层级供电电压的一个或多个电源转换器以及为I/O电路提供不同的第二层级供电电压的一个或多个电源转换器。
所示的实施方案中的分级电力传输系统1310也是可缩放的,反映了计算元件1320的可缩放性。在各种实施方案中,分级电力传输系统1310的电源转换器层级可以包括多个电源转换器(例如,开关电压调节器等),以满足上文所讨论的各种负载的电力要求。针对特定具体实施被启用的电源转换器的数量因此可以对应于计算元件1320的特定具体实施中的IC 1322-1至IC 1322-N的数量。更笼统地说,电源转换器层级1312和电源转换器层级1314可以被布置成随着在计算元件1320中实现更多计算能力而提高供电能力。通过这种方式,分级电力传输系统1310的设计可重复用于计算元件1320的多种不同具体实施。在计算元件1320的可缩放性范围内重复使用分级电力传输系统1310的设计进而可以消除为各种不同具体实施提供定制电力传输解决方案的需求。这进而可以基于计算元件1320的不同具体实施来显著简化各种系统的设计,并且减少实现用于此类设计的任何特定具体实施的工作系统的时间量。
计算机可读介质和制造系统:
图14是生产系统(manufacturing system)1400的一个实施方案的框图。该系统包括非暂态计算机可读介质1420,其上存储有本公开范围内的任何实施方案的电力传输系统的指令/描述1450。计算机可读介质1420可以是能够提供信息的持久存储的多种不同类型非暂态介质中的一种,包括磁盘存储器、固态硬盘(例如,使用闪存)、光存储(例如,CD-ROM)、各种类型的随机存取存储器(RAM)等。
计算机系统1440被配置为从计算机可读介质1420读取电路指令/描述1450。此外,计算机系统1440可执行各种指令,并且使用电路描述来促使制造系统1445制造由电路指令/描述1450表示的电路的一个或多个实例。制造系统1445可以是能够制造电子电路的任何类型的自动化系统。
示例系统:
接下来转到图15,其示出了系统1500的一个实施方案的框图,该系统可结合和/或以其他方式利用本文所述的方法和机制。在所示的实施方案中,系统1500包括片上系统(SoC)1506的至少一个实例,该片上系统可包括多种类型的处理单元诸如中央处理单元(CPU)、图形处理单元(GPU),或者其他通信结构,以及到存储器和输入/输出设备的接口。在一些实施方案中,SoC 1506中的一个或多个处理器包括多个执行道和指令发布队列。在各种实施方案中,SoC 1506耦接到外部存储器1502、外围设备1504和电源1508。
还提供了电源1508,该电源向SoC 1506供应供电电压以及向存储器1502和/或外围设备1504供应一个或多个供电电压。在各种实施方案中,电源1508表示电池(例如,智能电话、膝上型电脑或平板电脑或者其他设备中的可再充电电池)。在一些实施方案中,包括SoC 1506的多于一个实例(并且也包括多于一个外部存储器1502)。
存储器1502为任何类型的存储器,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM(包括SDRAM的移动版本,诸如mDDR3等,和/或SDRAM的低功率版本,诸如LPDDR2等)、RAMBUSDRAM(RDRAM)、静态RAM(SRAM)等。一个或多个存储器设备耦接到电路板上以形成存储器模块,诸如单列直插存储器模块(SIMM)、双列直插存储器模块(DIMM)等。另选地,设备可以芯片堆叠(chip-on-chip)构型、封装堆叠(package-on-package)构型或者多芯片模块构型与SoC或集成电路安装在一起。
根据系统1500的类型,外围设备1504包括任何期望的电路。例如,在一个实施方案中,外围设备1504包括用于各种类型的无线通信的设备,诸如Wi-Fi、蓝牙、蜂窝、全球定位系统等。在一些实施方案中,外围设备1504还包括附加存储器,包括RAM存储器、固态存储器或磁盘存储器。外围设备1504包括用户接口设备诸如显示屏,包括触摸显示屏或多点触摸显示屏、键盘或其他输入设备、麦克风、扬声器等。
如图所示,示出的系统1500具有在广泛领域中的应用。例如,系统1500可用作台式计算机1510、膝上型计算机1520、平板电脑1530、蜂窝或移动电话1540或电视1550(或耦接到电视的机顶盒)的芯片、电路、部件等的一部分。还示出了智能手表和健康监测设备1560。在一些实施方案中,智能手表1560可包括各种通用计算相关功能。例如,智能手表可提供对电子邮件、手机服务、用户日历等的访问。在各种实施方案中,健康监测设备可以是专用医疗设备或以其他方式包括专用的健康相关功能。例如,健康监测设备可监测用户的生命体征、跟踪用户与其他用户的接近度以用于流行病学社交距离的目的、联系人跟踪、在发生健康危机的情况下向紧急服务部门提供通信等。在各种实施方案中,上述智能手表可包括或可不包括一些或任何健康监测相关功能。还设想了其他可穿戴设备,诸如围绕颈部佩戴的设备、可植入人体中的设备、被设计成提供增强和/或虚拟现实体验的眼镜,等等。
系统1500还可用作基于云的服务1570的一部分。例如,先前提及的设备和/或其他设备可访问云端中的计算资源(即,远程定位的硬件和/或软件资源)。更进一步地,系统1500可用于家庭的除先前提到的那些设备之外的一个或多个设备中。例如,家用电器可监测和检测值得注意的情况。例如,家中的各种设备(例如,冰箱、冷却系统等)可监测设备的状态,并且在检测到特定事件的情况下向房主(或例如维修机构)提供警报。另选地,恒温器可监测家中的温度,并且可基于由房主对各种情况的反应历史来自动化调整加热/冷却系统。图15中还示出了系统1500对各种交通运输方式的应用。例如,系统1500可用于飞机、火车、公共汽车、出租用汽车、私人汽车、从私人船只到游轮的水运船、(用于出租或私有的)小型摩托车等的控制和/或娱乐系统。在各种情况下,系统1500可用于提供自动化引导(例如,自驾驶车辆)、一般系统控制等。这些任何许多其他实施方案都是可能的并且被设想到的。需注意,图15所示的设备和应用仅为例示性的,并非旨在进行限制。其他设备是可能的并且被设想到的。
本公开还设想了在图15中示出的各种设备中的一些或全部设备之间使用通用可缩放的计算架构。因此,计算元件可根据在其中实现计算元件的特定系统的需要来缩放。例如,智能手表/健康监测设备1560可以使用可缩放架构的计算元件的第一具体实施,而平板电脑1530使用第二具体实施,并且台式计算机1510使用第三具体实施。在该特定示例中,平板电脑1530中的计算元件的具体实施可相对于智能手表/健康监测设备1560进行扩大。类似地,台式计算机1510中的计算元件的具体实施可相对于平板电脑1530的具体实施进行扩大。因此,这些设备中的每一个设备都可利用根据其相应系统的需要而按比例实现的通用计算架构。结合可缩放架构,根据本公开的电力传输系统可以设置在这些应用中的每一个应用中并且可以相应地与计算元件一起缩放。因此,虽然本文讨论的每个示例都可以利用具有通用设计的电力传输系统,但是台式计算机1510的具体实施可比平板电脑1530的具体实施具有更大的电力传输能力,而平板电脑的具体实施比智能手表/健康监测设备1560的具体实施具有更大的电力传输能力。然而,在这些不同设备之间使用的电力传输系统的通用设计可以显著地简化其具体实施,因为电力传输系统可以通过启用/停用其中的电源转换器中的适当电源转换器而被配置用于特定应用。
***
本公开包括对“实施方案”或“实施方案”的组(例如,“一些实施方案”或“各种实施方案”)的引用。实施方案是所公开概念的不同具体实施或实例。提及“实施方案”、“一个实施方案”、“特定实施方案”等并不一定是指相同的实施方案。设想了大量可能的实施方案,包括具体公开的那些,以及落入本公开的实质或范围内的修改或替代。
本公开可讨论可由所公开的实施方案产生的潜在优点。并非所有这些实施方案的具体实施都将必然表现出任何或所有潜在优点。特定具体实施是否实现了优点取决于许多因素,其中一些因素在本公开的范围之外。事实上,存在许多原因导致落入权利要求范围内的具体实施可能不表现出任何所公开的优点中的一些或全部。例如,特定具体实施可包括在本公开的范围之外的其他电路,结合所公开的实施方案中的一个实施方案,该其他电路否定或减弱一个或多个所公开的优点。此外,特定具体实施(例如,具体实施技术或工具)的次优设计执行也可能否定或减弱所公开的优点。即使假设有技术的具体实施,优点的实现仍可取决于其他因素,诸如部署具体实施的环境情况。例如,提供给特定具体实施的输入可防止本公开中解决的一个或多个问题在特定场合发生,结果可能无法实现其解决方案的益处。考虑到本公开外部的可能因素的存在,本文所述的任何潜在优点都不应理解为是为了证明侵权行为而必须满足的权利要求限制。相反,此类潜在优点的识别旨在示出受益于本公开的设计者可用的一种或多种改进类型。永久性地描述此类优点(例如,陈述特定优点“可能出现”)并非旨在传达关于此类优点实际上是否可被实现的疑问,而是认识到此类优点的实现通常取决于附加因素的技术现实。
除非另行指出,否则实施方案是非限制性的。也就是说,所公开的实施方案并非旨在限制基于本公开起草的权利要求的范围,即使仅针对特定特征描述单个示例的情况下也是如此。本发明所公开的实施方案旨在为例示性的而非限制性的,而无需在本公开中进行任何相反的陈述。因此本申请意在允许涵盖所公开实施方案的权利要求、以及此类替代形式、修改形式和等价形式,这对知晓本公开有效效果的本领域技术人员将是显而易见的。
例如,本申请中的特征可以任何合适的方式组合。因此,在本专利申请(或要求享有其优先权的专利申请)进行期间可针对特征的任何此类组合作出新的权利要求。具体地讲,参照所附权利要求,从属权利要求的特征在适当的情况下可与其他从属权利要求的特征组合,包括从属于其他独立权利要求的权利要求。类似地,在适当的情况下,可组合来自相应独立权利要求的特征。
因此,虽然所附从属权利要求可撰写成使得每个从属权利要求从属于单个其他权利要求,但也可设想附加从属关系。可设想符合本公开的从属权利要求的任何组合,并且这些组合可在本专利申请或另一专利申请中受权利要求书保护。简而言之,组合不限于所附权利要求中具体列举的那些。
在适当的情况下,还预期以一种格式或法定类型(例如,装置)起草的权利要求旨在支持另一种格式或法定类型(例如,方法)的对应权利要求。
***
因为本公开是法律文件,所以各种术语和短语可受到管理和司法解释的约束。特此给出公告,以下段落以及贯穿本公开提供的定义将用于确定如何解释基于本公开起草的权利要求。
除非上下文另有明确规定,否则对单数形式的项目的引用(即,前面有“一个”、“一种”或“该”的名词或名词短语)旨在表示“一个或多个”。因此,在不伴随上下文的情况下,对权利要求中的“项目”的引用并不排除该项目的附加实例。“多个”项目是指两个或更多个项目的集合。
词语“可”在本文中在允许的意义上(即,具有潜在可能的,能够的)进行使用,而不是在强制意义上(即,必须)进行使用。
术语“包含”和“包括”及其形式是开放式的,并且意指“包括但不限于”。
当在本公开中相对于选项列表使用术语“或”时,除非上下文另有提供,否则一般将理解为以包含性意义使用。因此,表述“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)、任何两个元素(例如,w和x,但不是y或z)、任何三个元素(例如,w、x和y,但不是z)以及所有四个元素。短语“...w、x、y和z中的至少一者”因此是指集合[w,x,y,z]中的至少一个元素,从而涵盖该元素列表中的所有可能的组合。该短语不应被解释为要求存在w的至少一个实例、x的至少一个实例、y的至少一个实例和z的至少一个实例。
在本公开中,各种“标签”可先于名词或名词短语。除非上下文另有提供,否则用于特征(例如,“第一电路”、“第二电路”、“特定电路”、“给定电路”等)的不同标签是指特征的不同实例。除此之外,除非另有说明,否则标签“第一”、“第二”和“第三”在应用于特征时并不暗示任何类型的排序(例如,空间、时间、逻辑等)。
短语“基于”用于描述影响确定的一个或多个因素。此术语不排除可能有附加因素可影响确定。也就是说,确定可仅基于指定的因素或基于所指定的因素及其他未指定的因素。考虑短语“基于B确定A”。此短语指定B是用于确定A的因素或者B影响A的确定。此短语并不排除A的确定也可基于某个其他因素诸如C。此短语也旨在覆盖A仅基于B来确定的实施方案。如本文所用,短语“基于”与短语“至少部分地基于”是同义的。
短语“响应于”和“响应”描述了触发效应的一个或多个因素。该短语不排除附加因素可影响或以其他方式触发效应的可能性,这些因素与指定因素联合使用或独立于指定因素。也就是说,效果可以仅仅响应于这些因素,或者可以响应于指定的因素以及其他未指定的因素。考虑短语“响应于B执行A”。该短语指定B是触发A的执行或触发A的特定结果的因素。该短语不排除执行A也可能响应于某些其他因素,诸如C。该短语也不排除执行A可响应于B和C而联合执行。此短语也旨在覆盖A仅响应于B而执行的实施方案。如本文所用,短语“响应”与短语“至少部分地响应于”是同义的。类似地,短语“响应于”与短语“至少部分地响应于”是同义的。
***
在本公开内,不同实体(其可被不同地称为“单元”、“电路”、其他部件等)可被描述或声称成“被配置为”执行一个或多个任务或操作。此表达方式—被配置为[执行一个或多个任务]的[实体]—在本文中用于指代结构(即,物理的事物)。更具体地,此表达方式用于指示此结构被布置成在操作期间执行一个或多个任务。结构可被说成“被配置为”执行某个任务,即使该结构当前并非正被操作。因此,被描述或表述为“被配置为”执行某个任务的实体指代用于实施该任务的物理的事物,诸如设备、电路、具有处理器单元的系统和存储有可执行程序指令的存储器等。此短语在本文中不被用于指代无形的事物。
在一些情况下,各种单元/电路/部件在本文中可被描述为执行一组任务或操作。应当理解,这些实体“被配置为”执行那些任务/操作,即使没有具体指出。
术语“被配置为”并不旨在意指“可配置为”。例如,未编程的FPGA不会被认为是“被配置为”执行特定功能。然而,该未编程的FPGA可以“可配置为”执行该功能。在适当编程之后,FPGA然后可认为“被配置为”执行特定功能。
出于基于本公开的美国专利申请的目的,在权利要求中陈述结构“被配置为”执行一个或多个任务明确地旨在对该权利要求要素不援引35U.S.C.§112(f)。如果申请人在基于本公开的美国专利申请的申请过程中想要援引112(f)部分,则其将使用“用于[执行功能]的装置”结构来表述权利要求的要素。
在本公开中可描述不同的“电路”。这些电路或“电路系统”构成硬件,该硬件包括各种类型的电路元件,诸如组合逻辑、时钟存储设备(例如,触发器、寄存器、锁存器等)、有限状态机、存储器(例如,随机存取存储器、嵌入式动态随机存取存储器)、可编程逻辑阵列等。电路可以是定制设计的,或取自标准库。在各种具体实施中,电路系统可以视情况包括数字部件、模拟部件或两者的组合。某些类型的电路可通常被称为“单元”(例如,解码单元、算术逻辑单元(ALU)、功能单元、存储器管理单元(MMU)等)。此类单元也指电路或电路系统。
因此,在附图中示出并在本文中描述的所公开的电路/单元/部件和其他元件包括硬件元件,诸如前面段落中描述的那些硬件元件。在许多情况下,硬件元件在特定电路中的内部布置可通过描述该电路的功能来指定。例如,特定的“解码单元”可被描述为执行“处理指令的操作码并将该指令路由到多个功能单元中的一个或多个”的功能,这意味着解码单元“被配置为”执行该功能。对于计算机领域的技术人员而言,该功能规范足以暗示用于电路的一组可能的结构。
在各种实施方案中,如前面段落中所述,电路、单元和其他元件可由其被配置为实施的功能或操作来限定。相对于彼此的布置和此类电路/单元/部件以及它们进行交互的方式形成硬件的微架构定义,该硬件最终在集成电路中制造或被编程到FPGA中以形成微架构定义的物理具体实施。因此,微架构定义被本领域的技术人员认为是可导出许多物理具体实施的结构,所有这些物理具体实施均落入由微架构定义所描述的更广泛的结构中。即,具有根据本公开提供的微架构定义的技术人员可在没有过度实验的情况下并且利用普通技术人员的应用,通过以硬件描述语言(HDL)诸如Verilog或VHDL编码电路/单元/部件的描述来实现该结构。HDL描述常常以可显现为功能性的方式来表达。但是对于本领域的技术人员而言,该HDL描述是用于将电路、单元或部件的结构转换为下一级具体实施细节的方式。此类HDL描述可采用以下形式:行为代码(其通常为不可合成的)、寄存器传输语言(RTL)代码(其与行为代码相比通常为可合成的)、或结构代码(例如,指定逻辑门及其连接性的网表)。可针对为给定集成电路制造技术设计的单元库来顺序地合成HDL描述,并可出于定时、功率和其他原因而被修改,以获得被传输到工厂以生成掩模并最终产生集成电路的最终的设计数据库。一些硬件电路或其部分也可在示意图编辑器中被定制设计并且与合成电路系统一起被捕获到集成电路设计中。该集成电路可包括晶体管和其他电路元件(例如,无源元件,诸如电容器、电阻器、电感器等),以及晶体管和电路元件之间的互连件。一些实施方案可实现耦接在一起的多个集成电路,以实现硬件电路,和/或可在一些实施方案中使用离散元件。另选地,HDL设计可被合成为可编程逻辑阵列诸如现场可编程门阵列(FPGA),并且可在FPGA中实现。一组电路的设计与这些电路的后续低级具体实施之间的这种解耦通常导致这样的情形:其中电路或逻辑设计者从来不指定超出对电路被配置为做什么的描述的用于低级具体实施的一组特定结构,因为该过程是在电路实施过程的不同阶段执行的。
可使用电路元件的许多不同低级组合来实现电路的相同规格的事实导致该电路的大量等效结构。如所指出的那样,这些低级电路具体实施可根据制造技术、被选择用于制造集成电路的代工厂、为特定项目提供的单元库等的变化而变化。在许多情况下,通过不同设计工具或方法进行的产生这些不同具体实施的选择可以是任意的。
此外,对于给定实施方案,电路的特定功能规范的单个具体实施通常包括大量设备(例如,数百万个晶体管)。因此,该信息的剪切体积使得提供用于实现单个实施方案的低级结构的完整叙述是不切实际的,更不用说大量等同的可能具体实施。为此,本公开描述了使用工业中常用的功能简写的电路的结构。
一旦充分了解了上面的公开,许多变型和修改对于本领域的技术人员而言将变得显而易见。本公开旨在使以下权利要求书被阐释为包含所有此类变型和修改。
Claims (20)
1.一种集成电路,所述集成电路包括:
多个部件,其中所述多个部件中的给定部件被配置为基于分配给所述给定部件的预算量来管理功耗;
全局功率控制电路,所述全局功率控制电路耦接到所述多个部件并且被配置为响应于到所述集成电路的触发输入而跨越所述多个部件应用功率控制;和
功率管理电路,所述功率管理电路被配置为:
检测由所述全局功率控制电路应用的所述功率控制是否超过阈值;以及
基于由所述全局功率控制电路应用的所述功率控制超过所述阈值的检测,减少分配给所述多个部件中的至少一个部件的所述预算量。
2.根据权利要求1所述的集成电路,其中所述阈值包括由所述全局功率控制电路应用所述功率控制的时间百分比。
3.根据权利要求2所述的集成电路,其中所述功率管理电路被配置为测量固定时间窗口内的所述时间百分比。
4.根据权利要求3所述的集成电路,其中所述功率管理电路被配置为检测所述固定时间窗口的第一实例期间的所述百分比,并且被配置为减少用于所述固定时间窗口的下一实例的所述预算量,其中所述下一实例与所述第一实例是连续的。
5.根据权利要求4所述的集成电路,其中所述功率管理电路被配置为在给定的固定时间窗口中减少对所述多个部件中的第一部件的所述预算量,并且在另一给定的固定时间窗口中减少对所述多个部件中的第二部件的所述预算量。
6.根据权利要求3至5中任一项所述的集成电路,其中所述部件中的至少一个部件包括一个或多个中央处理单元(CPU)处理器,并且其中所述CPU被配置为执行第二多个指令,以使用动态电压和频率控制来实现所述集成电路中的功率控制。
7.根据权利要求6所述的集成电路,其中所述第二多个指令在大于所述固定时间窗口的第二固定时间窗口上实现功率控制。
8.根据权利要求7所述的集成电路,其中所述第二固定时间窗口比所述固定时间窗口长一个或多个十进制数量级。
9.根据权利要求7所述的集成电路,其中所述第二固定时间窗口是所述固定时间窗口的整数倍。
10.根据任一前述权利要求所述的集成电路,其中功率管理电路被配置为:
检测由所述全局功率控制电路应用的所述功率控制小于所述阈值;以及
基于由所述全局功率控制电路应用的所述功率控制超过所述阈值的检测,增加分配给所述多个部件中的至少一个部件的所述预算量。
11.根据权利要求10所述的集成电路,其中所述预算量的增加被限制为用于所述多个部件中的至少一个部件的最大量。
12.根据权利要求10或11所述的集成电路,其中所述功率管理电路被配置为当在所述预算量的增加和所述预算量的减少之间变化时应用迟滞。
13.根据任一前述权利要求所述的集成电路,其中所述功率管理电路包括功率管理处理器和耦接到所述功率管理处理器的存储器,所述存储器存储多个指令,所述指令在由所述功率管理处理器执行时使得所述功率管理处理器执行操作,所述操作包括上文针对所述功率管理电路描述的操作。
14.一种系统,所述系统包括:
根据任一前述权利要求所述的集成电路;和
功率管理单元,所述功率管理单元耦接到所述集成电路,其中所述功率管理单元被配置为向所述集成电路供电并且生成所述触发输入。
15.一种非暂态计算机可读介质,所述非暂态计算机可读介质存储用于集成电路的功率管理电路中的功率管理处理器的多个指令,所述集成电路还包括多个部件,其中所述多个部件中的给定部件被配置为基于分配给所述给定部件的预算量来管理功耗,并且所述集成电路进一步包括全局功率控制电路,所述全局功率控制电路被配置为响应于到所述集成电路的触发输入而跨越所述多个部件应用功率控制,并且其中所述多个指令在由所述功率管理处理器执行时使得所述功率管理处理器执行操作,所述操作包括:
检测由所述全局功率控制电路应用的所述功率控制是否超过阈值;以及
基于由所述全局功率控制电路应用的所述功率控制超过所述阈值的检测,减少分配给所述多个部件中的至少一个部件的所述预算量。
16.根据权利要求15所述的非暂态计算机可读介质,其中其中所述多个指令在由所述功率管理处理器执行时使得所述功率管理处理器执行操作,所述操作进一步包括:
检测由所述全局功率控制电路应用的所述功率控制小于所述阈值;以及
基于由所述全局功率控制电路应用的所述功率控制超过所述阈值的检测,增加分配给所述多个部件中的至少一个部件的所述预算量。
17.根据权利要求16所述的非暂态计算机可读介质,其中所述预算量的增加被限制为用于所述多个部件中的至少一个部件的最大量。
18.根据权利要求15至17中任一项所述的非暂态计算机可读介质,其中所述阈值包括由所述全局功率控制电路应用所述功率控制的时间百分比。
19.根据权利要求18所述的非暂态计算机可读介质,其中其中所述多个指令在由所述功率管理处理器执行时使得所述功率管理处理器执行操作,所述操作进一步包括:
测量固定时间窗口内的所述时间百分比。
20.根据权利要求18或19所述的非暂态计算机可读介质,其中所述多个指令在由所述功率管理处理器执行时使得所述功率管理处理器执行操作,所述操作进一步包括:
检测所述固定时间窗口的第一实例期间的所述百分比;以及
减少所述固定时间窗口的下一实例的所述预算量,其中所述下一实例与所述第一实例是连续的。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163239264P | 2021-08-31 | 2021-08-31 | |
US63/239,264 | 2021-08-31 | ||
US17/676,668 | 2022-02-21 | ||
US17/676,683 US11853140B2 (en) | 2021-08-31 | 2022-02-21 | Power management based on limiting hardware-forced power control |
US17/676,683 | 2022-02-21 | ||
US17/676,665 | 2022-02-21 | ||
PCT/US2022/039136 WO2023033969A1 (en) | 2021-08-31 | 2022-08-02 | Power management based on limiting hardware-forced power control |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117882028A true CN117882028A (zh) | 2024-04-12 |
Family
ID=85285987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280058308.4A Pending CN117882028A (zh) | 2021-08-31 | 2022-08-02 | 基于限制硬件强制的功率控制的功率管理 |
Country Status (5)
Country | Link |
---|---|
US (3) | US11960341B2 (zh) |
KR (1) | KR20240040797A (zh) |
CN (1) | CN117882028A (zh) |
TW (1) | TWI836579B (zh) |
WO (1) | WO2023033969A1 (zh) |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10108131A1 (de) | 2001-02-21 | 2002-09-05 | Infineon Technologies Ag | Halbleiterschaltung und Schaltnetzteil |
US7076204B2 (en) | 2001-10-30 | 2006-07-11 | Unwired Technology Llc | Multiple channel wireless communication system |
AU2003236882A1 (en) * | 2003-05-15 | 2004-12-03 | 3Com Corporation | System and method for the management of power supplied over data lines |
US7562234B2 (en) | 2005-08-25 | 2009-07-14 | Apple Inc. | Methods and apparatuses for dynamic power control |
US7581125B2 (en) * | 2005-09-22 | 2009-08-25 | Hewlett-Packard Development Company, L.P. | Agent for managing power among electronic systems |
US7631201B2 (en) | 2006-05-25 | 2009-12-08 | Foundry Networks, Inc. | System software for managing power allocation to Ethernet ports in the absence of mutually exclusive detection and powering cycles in hardware |
TWI390391B (zh) | 2006-12-31 | 2013-03-21 | Sandisk Technologies Inc | 在功率島邊界上具保護的方法、晶片、電路及系統 |
KR100897770B1 (ko) * | 2007-01-30 | 2009-05-15 | 삼성전자주식회사 | 전송 엔벌로프 검출기의 문턱 전압들 조절 방법들과 상기방법들을 이용한 장치들 |
US8527794B2 (en) | 2010-05-27 | 2013-09-03 | Advanced Micro Devices, Inc. | Realtime power management of integrated circuits |
US8633680B2 (en) | 2011-03-28 | 2014-01-21 | Fairchild Semiconductor Corporation | Differential sensing for voltage control in a power supply circuit |
WO2013012411A1 (en) | 2011-07-18 | 2013-01-24 | Hewlett-Packard Development Company, L.P. | Power consumption limit associated with power over ethernet (poe) computing system |
CN103107693A (zh) * | 2011-11-14 | 2013-05-15 | 鸿富锦精密工业(深圳)有限公司 | 测试电源装置 |
US20120095607A1 (en) * | 2011-12-22 | 2012-04-19 | Wells Ryan D | Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems |
US20130185581A1 (en) | 2012-01-18 | 2013-07-18 | Qualcomm Incorporated | Efficient Code Dispatch Based on Performance and Energy Consumption |
US9568966B2 (en) | 2012-08-31 | 2017-02-14 | Dell Products L.P. | Dynamic power budget allocation |
US8848577B2 (en) | 2012-09-24 | 2014-09-30 | Apple Inc. | Bandwidth management |
US9189045B2 (en) | 2012-10-08 | 2015-11-17 | Dell Products L.P. | Power management system |
US9541991B2 (en) | 2012-12-14 | 2017-01-10 | Intel Corporation | Method and apparatus for managing computing system power |
CN105449719B (zh) * | 2014-08-26 | 2019-01-04 | 珠海格力电器股份有限公司 | 分布式能源电源控制方法、装置及系统 |
KR102320399B1 (ko) | 2014-08-26 | 2021-11-03 | 삼성전자주식회사 | 전원 관리 칩, 그것을 포함하는 모바일 장치 및 그것의 클록 조절 방법 |
US9417961B2 (en) | 2014-11-18 | 2016-08-16 | HGST Netherlands B.V. | Resource allocation and deallocation for power management in devices |
US9654483B1 (en) | 2014-12-23 | 2017-05-16 | Amazon Technologies, Inc. | Network communication rate limiter |
US10234930B2 (en) | 2015-02-13 | 2019-03-19 | Intel Corporation | Performing power management in a multicore processor |
US10332230B2 (en) | 2015-08-31 | 2019-06-25 | Qualcomm Incorporated | Characterizing GPU workloads and power management using command stream hinting |
CN106444454B (zh) | 2016-11-02 | 2018-12-11 | 珠海格力电器股份有限公司 | 用电系统的能源控制方法及控制装置 |
US10558589B1 (en) | 2017-06-02 | 2020-02-11 | Apple Inc. | Secure data access between computing devices using host-specific key |
EP3457580B1 (en) * | 2017-09-19 | 2020-02-19 | Nxp B.V. | Nfc controller |
US11449127B2 (en) | 2017-09-28 | 2022-09-20 | Intel Corporation | Peak power determination for an integrated circuit device |
US11429173B2 (en) | 2018-12-21 | 2022-08-30 | Intel Corporation | Apparatus and method for proactive power management to avoid unintentional processor shutdown |
US11513576B2 (en) | 2019-06-01 | 2022-11-29 | Apple Inc. | Coherent power management system for managing clients of varying power usage adaptability |
JP7135214B2 (ja) | 2019-07-12 | 2022-09-12 | シャープNecディスプレイソリューションズ株式会社 | 電子機器、電子機器の電力供給方法 |
US10948957B1 (en) | 2019-09-26 | 2021-03-16 | Apple Inc. | Adaptive on-chip digital power estimator |
US11940855B2 (en) | 2019-10-14 | 2024-03-26 | Intel Corporation | Apparatus and method for dynamic reallocation of processor power by throttling processor to allow an external device to operate |
US11340690B2 (en) * | 2020-01-23 | 2022-05-24 | Dell Products L.P. | System and method of utilizing different power levels of at least one processor of an information handling system |
US20220365586A1 (en) | 2021-05-17 | 2022-11-17 | Microsoft Technology Licensing, Llc | Dynamic peak power control |
US11755090B2 (en) * | 2021-08-20 | 2023-09-12 | Dell Products L.P. | Real-time communication of power supply unit power loading status |
-
2022
- 2022-02-21 US US17/676,665 patent/US11960341B2/en active Active
- 2022-02-21 US US17/676,683 patent/US11853140B2/en active Active
- 2022-02-21 US US17/676,668 patent/US11693472B2/en active Active
- 2022-08-02 WO PCT/US2022/039136 patent/WO2023033969A1/en active Application Filing
- 2022-08-02 KR KR1020247006762A patent/KR20240040797A/ko not_active Application Discontinuation
- 2022-08-02 CN CN202280058308.4A patent/CN117882028A/zh active Pending
- 2022-08-30 TW TW111132676A patent/TWI836579B/zh active
Also Published As
Publication number | Publication date |
---|---|
US11693472B2 (en) | 2023-07-04 |
TW202318152A (zh) | 2023-05-01 |
KR20240040797A (ko) | 2024-03-28 |
US20230069344A1 (en) | 2023-03-02 |
TWI836579B (zh) | 2024-03-21 |
US20230063331A1 (en) | 2023-03-02 |
WO2023033969A1 (en) | 2023-03-09 |
US20230061898A1 (en) | 2023-03-02 |
US11960341B2 (en) | 2024-04-16 |
US11853140B2 (en) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9223383B2 (en) | Guardband reduction for multi-core data processor | |
CN110109527B (zh) | 动态电压裕度恢复 | |
KR102355989B1 (ko) | 다중 노드 시스템 저전력 관리 | |
US20200042469A1 (en) | Systems and methods for optimizing scheduling different types of memory requests with varying data sizes | |
CN118202319A (zh) | 电源电压下降期间的性能管理 | |
US20240160267A1 (en) | Telemetry Push Aggregation | |
CN111684391B (zh) | 全系统低功率管理 | |
US20240061617A1 (en) | Memory Bank Hotspotting | |
US11886340B1 (en) | Real-time processing in computer systems | |
WO2014031384A1 (en) | Power management of multiple compute units sharing a cache | |
KR102614515B1 (ko) | 스케일러블 인터럽트들 | |
CN117321538A (zh) | 管芯到管芯动态时钟和功率门控 | |
US11853140B2 (en) | Power management based on limiting hardware-forced power control | |
US11513848B2 (en) | Critical agent identification to modify bandwidth allocation in a virtual channel | |
US20240201766A1 (en) | System-on-Chip with DVFM Protection Circuit | |
US11893241B1 (en) | Variable hit latency cache | |
US11900146B2 (en) | Memory controller with separate transaction table for real time transactions | |
US20230109984A1 (en) | Request and Floor Interface for Current Control with Correctness in an SOC | |
US20230101217A1 (en) | Global Integrated Circuit Power Control | |
US11914521B1 (en) | Cache quota control | |
US11467988B1 (en) | Memory fetch granule | |
US11740993B2 (en) | Debug trace of cache memory requests | |
WO2023048930A1 (en) | Global integrated circuit power control | |
CN117980862A (zh) | 全局集成电路功率控制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |