CN113625045A - 用于精确测量平台功率的方法和装置 - Google Patents
用于精确测量平台功率的方法和装置 Download PDFInfo
- Publication number
- CN113625045A CN113625045A CN202011390865.5A CN202011390865A CN113625045A CN 113625045 A CN113625045 A CN 113625045A CN 202011390865 A CN202011390865 A CN 202011390865A CN 113625045 A CN113625045 A CN 113625045A
- Authority
- CN
- China
- Prior art keywords
- power
- operating system
- accumulator
- measurement data
- pmc
- 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
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R21/00—Arrangements for measuring electric power or power factor
- G01R21/133—Arrangements for measuring electric power or power factor by using digital technique
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R21/00—Arrangements for measuring electric power or power factor
-
- 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
-
- 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/3243—Power saving in microcontroller unit
-
- 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/3246—Power saving characterised by the action undertaken by software initiated power-off
Abstract
本公开涉及用于精确测量平台功率的方法和装置。一种功率管理控制器(PMC),其管理平台的功率状态,通知功率累加器设备在进入低功率状态(例如,S0iX)期间开始测量平台功率。功率累加器设备开始测量功率,直到PMC发出停止消息为止。PMC在检测到任何唤醒事件时,向功率累加器设备发起停止消息。一旦操作系统(OS)上下文恢复,软件就可以从功率累加器设备读取测量数据。测量数据可以由主机软件使用标准软件应用程序接口(API)访问,并可以用于影响系统的功率策略。
Description
技术领域
本公开涉及用于精确测量平台功率的方法和装置。
背景技术
电池寿命是英特尔客户端平台的关键载体之一,其在定义最终用户体验方面起着重要作用。在能源认证机构(如加州能源委员会(California Energy Commission)、能源之星(Energy Star)等)的推动下,迫切需要在系统活动状态(S0)期间和在系统休眠状态(S0iX)中测量关键平台组件的功耗。
发明内容
根据本公开的一个方面,公开了一种用于测量平台功率的装置,所述装置包括:一个或多个通道,用于接收电源线;输入,用于从功率管理控制器接收指令,所述指令用于开始对所述电源线的功率测量,并响应于处理器处于低功率模式而生成功率的测量数据;存储器,用于存储所述测量数据;以及输入-输出(I/O)接口,用于与操作系统通信,其中,所述操作系统访问所述测量数据。
根据本公开的另一方面,公开了一种用于测量平台功率的装置,所述装置包括:多个处理器核;功率管理控制器(PMC),耦合到所述多个处理器核,并用于管理所述多个处理器核的功率和/或使所述装置进入低功率模式;以及输出,用于与功率累加器通信,其中,所述PMC使所述功率累加器在所述装置进入所述低功率模式时测量由所述装置消耗的功率。
根据本公开的又一方面,公开了一种系统,包括:功率累加器;片上系统,耦合到所述功率累加器,其中,所述片上系统包括:多个处理器核;功率管理控制器(PMC),耦合到所述多个处理器核,并用于管理所述多个处理器核的功率和/或使所述片上系统进入低功率模式;以及输出,用于与所述功率累加器通信,其中,所述PMC使所述功率累加器在所述片上系统进入所述低功率模式时测量由所述片上系统消耗的功率,其中,所述功率累加器存储测量的功率作为测量数据;以及输入-输出(IO)接口,用于与操作系统通信,其中,所述操作系统访问所述测量数据。
根据本公开的又一方面,公开了一种用于测量平台功率的方法,所述方法包括:通过输入接收来自功率管理控制器的指令,所述指令用于开始对电源线的功率测量,并响应于处理器处于低功率模式而生成功率的测量数据;将所述测量数据存储在存储器中;以及通过输入-输出(I/O)接口与操作系统通信,其中,所述操作系统访问所述测量数据。
根据本公开的又一方面,公开了一种具有机器可执行指令的机器可读存储介质,所述机器可执行指令在被执行时使一个或多个机器执行根据本公开实施例的方法。
附图说明
从下面给出的详细描述和本公开的各种实施例的附图将更全面地理解本公开的实施例,然而,这些附图不应被视为将本公开局限于特定实施例,而是仅用于说明和理解。
图1示出了根据一些实施例的具有功率累加器以测量系统功率的片上系统。
图2示出了根据一些实施例的示出功率累加器何时测量系统功率的高级时序图。
图3示出了根据一些实施例的当平台的片上系统处于低功率模式(例如,S0iX)时,通过主机软件精确地测量平台功率的系统架构。
图4示出了根据一些实施例的在平台的片上系统处于低功率模式(例如,S0iX)时,通过主机软件精确地测量平台功率的事件流程图。
图5示出了根据一些实施例的用于将消息从功率管理控制器(PMC)驱动到功率累加器的通用输入-输出(GPIO)。
图6示出了根据各种实施例的耦合到功率累加器的智能设备或计算机系统或SoC(片上系统),该功率累加器在平台的SoC处于低功率模式(例如,S0iX)时通过主机软件精确地测量平台功率。
具体实施方式
各种实施例公开了一种当平台的系统处于深低功率状态(例如,S0iX)时,在不需要任何外部功率测量仪器的情况下精确地测量平台的系统功率的方法和装置。核心逻辑使用片上系统(SoC)内的板载功率累加器设备、相应的软件驱动器、以及功率管理控制器(PMC)来测量当平台处于深休眠状态(例如,S0iX)时的系统功率。典型的平台包含若干电压轨(例如VCCCORE、VCCGT、VCCSA、VCCRING、VCCIO、VCCL2、VNNAON、VCCST等),这些电压轨驱动SoC的处理器核、图形单元和其他硬件组件。各种实施例提供测量整体平台功率以及单个组件功率的能力。
在一些实施例中,负责管理平台的功率状态的PMC通知功率累加器设备在进入低功率状态(例如,S0iX)期间开始测量平台功率。功率累加器设备开始测量功率,直到PMC发出停止消息。PMC在检测到任何唤醒事件时向功率累加器设备发出停止消息。一旦操作系统(OS)上下文恢复,则软件就可以从功率累加器读取测量数据(例如,测量的功率)
测量数据可由主机软件使用标准软件应用程序编程接口(API)来访问,并可以用于影响系统的功率策略。例如,主机软件使用测量数据来基于最终用户功率需求而学习、调整和动态调节平台行为,还用于报告能耗,以便更好地预算功率。在各种实施例中,测量数据自包含在主机系统内,以允许软件和操作系统对测量数据的本地访问。
各种实施例有许多技术效果。例如,主机软件和OS可以直接访问测量数据,并且这种访问可以实现应用程序感知功率计算。各种实施例的方案是非侵入性的,并且可以不使用SoC的(一个或多个)处理器来测量功率数据。该方案是精确的并且成本低,并支持系统活动状态(例如,S0)和系统休眠状态(例如,SoiX)下的功率测量。其他技术效果将从各种实施例和附图中显而易见。
在下面的描述中,讨论许多细节以提供对本公开的实施例的更彻底的说明。然而,对于本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践本公开的实施例。在其他实例中,为了避免混淆本公开的实施例,以框图形式而不是详细地示出公知结构和设备。
注意,在实施例的相应附图中,信号用线表示。一些线可能更粗,以指示更多的组成信号路径,和/或在一个或多个末端具有箭头,以指示主要信息流方向。此类指示并非旨在限制。相反,线结合一个或多个示例性实施例使用以便于更容易地理解电路或逻辑单元。任何表示的信号(如设计需求或偏好所指示的)实际上可以包括一个或多个可以沿任一方向传播的信号,并且可以利用任何适当类型的信号方案来实现。
在本说明书和权利要求中,术语“连接”是指没有任何中间设备的直接连接,诸如所连接的事物之间的电气、机械或磁性连接。
术语“耦合”是指直接或间接连接,诸如所连接的事物之间的直接电气、机械或磁性连接、或通过一个或多个无源或有源中间设备的间接连接。
这里的“相邻”一般是指一个事物紧挨着(例如,紧靠或靠近它们之间的一个或多个事物)或相邻另一个事物(例如,邻接)。
术语“电路”或“模块”可以指布置成彼此协作以提供所需功能的一个或多个无源和/或有源部件。
术语“信号”可以指至少一个电流信号、电压信号、磁信号或数据/时钟信号。“一”、“一个”和“该”的含义包括复数参考。“在……中”的含义包括“在……中”和“在……上”。
这里的术语“模拟信号”一般是指任何这样的连续信号:该信号的时变特性(变量)是某个其他时变量的表示(即模拟另一个时变信号)。
术语“数字信号”是这样的物理信号:它表示离散值序列(量化离散时间信号)(例如任意比特流的序列),或数字化的(经采样和模数转换的)模拟信号。
术语“缩放”通常是指将设计(原理图和布局)从一种工艺技术转换为另一种工艺技术,并且随后可能减少布局区域。在某些情况下,缩放还指将设计从一种工艺技术扩升到另一种工艺技术,并可能随后增加布局区域。术语“缩放”通常也指在同一技术节点内缩小或增大布局和设备。术语“缩放”也可指相对于另一参数(例如,电源电平)调整(例如,减速或加速-即分别缩小或放大)信号频率。术语“基本上”、“接近”、“近似”、“靠近”和“大约”通常指在目标值的+/-10%范围内。
除非另有规定,否则使用序数形容词“第一”、“第二”和“第三”等来描述一个共同的对象仅仅表明相似对象的不同实例正在被提及,并不意味着这样描述的对象必须在时间上、空间上、等级上、或者以任何其他方式以给定的顺序排列。
就本公开而言,短语“A和/或B”和“A或B”是指(A)、(B)或(A和B)。就本公开而言,短语“A、B和/或C”是指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
说明书和权利要求书中的术语“左”、“右”、“前”、“后”、“上”、“下”、“在……上”、“在……下”等(如果存在的话)用于描述性目的,而不一定用于描述永久相对位置。
需要指出的是,具有与任何其他附图的具有相同的参考标号(或名称)的那些元素可以以与所描述的类似的方式操作或起作用,但不限于此。
为了实施例的目的,这里描述的各种电路和逻辑块中的晶体管是金属氧化物半导体(MOS)晶体管或其衍生物,其中MOS晶体管包括漏极、源极、栅极和体端子(bulkterminal)。晶体管和/或MOS晶体管衍生物还包括三栅极和FinFET晶体管、栅极全围绕圆柱形晶体管、隧穿FET(TFET)、方形线(Square Wire)或矩形带状晶体管(Rectangular RibbonTransistors)、铁电FET(FeFET)或实现晶体管功能的其他器件,如碳纳米管或自旋电子器件。MOSFET对称源极和漏极端子,即相同的端子且在这里可以互换使用。另一方面,TFET器件具有不对称的源极和漏极端子。本领域技术人员将理解,可以在不脱离本公开的范围的情况下使用其他晶体管,例如,双极结型晶体管(BJT PNP/NPN)、BiCMOS、CMOS等。
图1示出了根据一些实施例的具有带有功率累加器以测量系统功率的片上系统101的装置100。SoC 101是处理器,其是参考图6描述的SoC的简化版本。处理器101包括功率管理控制器103、用于与功率累加器102通信的I/O接口104(例如,I2C接口)、和多个处理器核105。功率累加器102包括诸如传感器之类的硬件,用于测量来自各种电源轨的功率。例如,功率累加器102包括电流和电压传感器,以测量与向电源轨供电的稳压器串联的电阻上的电压。与由SoC 101消耗的功率相比,功率累加器102消耗非常低的功率(例如,小于1mW)。
虽然示出了四个核,但是处理器101可以具有任意数量的处理器核。这些核可以具有相同的能力(即对称),也可以具有不同的能力和大小(例如,不对称)。功率累加器102接收多个电源轨(例如,VCCCORE、VCCGT、VCCSA、VCCRING、VCCIO、VCCL2、VNNAON、VCCST等),其驱动SoC 101的处理器核、图形单元和其他硬件组件。
在一些实施例中,PMC 103负责管理平台的功率状态(包括SoC 101的功率状态),并通知功率累加器102在进入低功率状态(例如,S0iX)期间开始测量来自电源轨的平台功率。PMC 103包括用于经由到功率累加器102的消息来启动和停止功率测量的硬件和/或软件。可以使用任何合适的协议来向功率累加器102发送消息和从功率累加器102接收消息。在一些实施例中,PMC 103经由检测到的管脚直接与功率累加器102通信。在一些实施例中,PMC 103经由I2C接口104与功率累加器102通信。
虽然示出了用于在深休眠状态S0iX期间测量功率的各种实施例,但是实施例并不仅限于该状态。例如,实施例可用于在诸如2019年1月发布的高级配置和功率接口(ACPI)规范版本6.2中描述的那些低功率状态期间测量功率。
在一些实施例中,功率累加器102开始测量电源轨上的功率,直到来自PMC 103的停止消息为止。PMC 103在检测到任何唤醒事件时向功率累加器102发出停止消息。在发出停止消息之后并且一旦操作系统上下文被恢复,软件就可以从功率累加器102读取测量数据。该软件(例如,主机软件)提供到功率累加器102的接口(例如,API),并将测量数据报告给OS或任何其他软件。
了解系统为什么消耗比预期更多的功率是有帮助的。例如,在下载补丁之后,如果系统的C状态(ACPI规范定义的功率状态)被破坏,这将导致更多的功耗,从而耗尽电池。各种实施例允许在安装系统补丁之前和之后测量运行时功率,并确保电池寿命不会受到损害。
图2示出了根据一些实施例的示出功率累加器何时测量系统功率的高级时序图200。图200示出了SoC 101在正常活动状态(例如,S0状态)下操作并转换到低功率模式(诸如系统休眠状态S0iX)。该转换通过软件在时间点201暂停操作而开始。SoC 101然后进入低功率模式202。在一些实施例中,SoC 101在低功率模式202期间继续执行一些活动,并且OS继续在SoC 101上执行。虽然参考在最低或最深休眠或功率状态下测量功率来描述各种实施例,但是功率累加器102还可以测量任何功率状态下的功率。
在进入低功率模式之后,平台(例如,SoC 101)进入深休眠状态(例如,S0iX)203。功率累加器102开始测量来自各个电源轨或电源线的功率。功率累加器102将开始测量来自电源轨的功率,直到PMC 103接收到停止消息为止。功率测量持续时间由标识符204指示。在转换到系统休眠状态(S0iX)期间,OS暂停所有软件应用程序,并通过断开设备电源和平台电源而将设备置于低功率状态。在没有各种实施例的方案的情况下,在没有设备功率(例如,SoC 101的功率)时,在系统处于深休眠状态(S0iX)时测量地板功率(floor power)具有挑战性,因为将没有可用于测量功率的软件或设备。
当OS或另一设备唤醒系统时(如参考205所示),功率累加器102停止测量功率。当系统唤醒时,SoC 101从深功率状态(例如,S0iX)转换到更高的活动状态,并最终退出低功率状态,如参考206所示。PMC 102在检测到任何唤醒事件时向功率累加器101发起停止消息。然后恢复软件和/或OS上下文,如参考207所示。一旦OS上下文被恢复,软件就可以从功率累加器102读取测量数据。
图3示出了根据一些实施例的用于在平台的片上系统处于低功率模式(例如,S0iX)时通过主机软件精确地测量平台功率的系统架构300。架构300包括系统201、功率累加器102、操作系统301、交流(AC)源302、电池充电器303、稳压器304和感测电阻(例如,Rb,分别用于VR1、VR2和VR3的R1、R2、R3)。示出了具有SoC 101和存储器202的系统201的简化版本。参照图6描述了系统201的更详细版本。
回到图3,系统201接收从不同的稳压器生成的多个电源。例如,电池充电器303从AC源302提供的输入电源Vin生成VccBattery,其可以耦合到墙上的电插座。由VR1从输入电源VccBattery生成VccCore。由VR2从输入电源VccBattery生成VccPCH。由VR3从输入电源VccBattery生成VccMem。虽然示出四个电源轨,但是任意数量的电源轨可以耦合到系统201。在一些实施例中,功率累加器102耦合到各种电源以感测通过它们的电压和/或电流。在该示例中,示出了具有四个通道Ch1、Ch2、Ch3和Ch4的功率累加器102。然而,功率累加器102可以耦合到任意数量的一个或多个通道。这里,每个通道耦合到相应的电源轨。例如,Ch1耦合到电源轨VccBattery上的电阻Rb;Ch2耦合到电源轨VccCore上的电阻R2;Ch3耦合到电源轨VccPCH上的电阻R3;以及Ch4耦合到电源轨VccMem上的电阻R4。
功率累加器102包括复用器102a、组合逻辑(CL)102b和数据寄存器102c。复用器102a的输入耦合到一个或多个通道。复用器102a经由通过有限状态机(未示出)控制的选择比特码一次选择一个通道。在一些实施例中,复用器102a是由可通过数字选择比特码(例如,数字信号)控制的模拟复用器。在一些实施例中,功率累加器102由常开(always-on,AON)电源供电。因此,功率累加器102可以不进入深低功率状态,以便其可以操作和测量一个或多个电源轨的功率。复用器102a的输出是模拟输出,该模拟输出随后由CL 102b中的模数转换器(ADC)转换为数字表示。
ADC是将连续的物理量(例如,电压)转换为表示物理量的振幅的数字的装置。可以使用任何合适的ADC来实现CL 102b中的ADC。例如,ADC是以下之一:直接转换ADC(用于快闪式(flash)ADC)、两步快闪式ADC、逐次逼近ADC(SAR ADC)、斜坡比较ADC、威尔金森(Wilkinson)ADC、积分ADC、增量编码ADC或计数器斜坡、流水线ADC(也称为子量程量化器)、三角积分ADC(也称为增量总和ADC)、时间交织ADC、具有中间FM级的ADC、或时间拉伸ADC。为了说明各种实施例,这里的ADC被认为是快闪式ADC。
CL 102b生成对通道上的功率的模拟测量的数字表示。然后,该数字表示被存储在数据寄存器102c中。为了不模糊各种实施例,未示出复用器102a的输入或输出处的电流传感器和/或电压传感器。这些电流传感器和/或电压传感器测量与特定通道相关联的电压和/或电流,然后由CL 102b的ADC将传感器的输出转换为数字形式。
在一些实施例中,操作系统301经由驱动器从数据寄存器102c读取数据(例如,测量的功率数据)。例如,具有驱动器301b的内核301a从数据寄存器102c读取数据。数据的读取发生在内核模式下,而数据的处理发生在用户模式下。在用户模式下,在OS 301上执行的功率表应用程序301c可以执行测量数据的后处理。功率表应用程序301c可以包括用于功率测量的持续时间的旋钮,如启动和停止旋钮301d所示。数据处理逻辑301e对测量数据执行启发式方法。例如,数据处理301e将当前测量数据与先前测量数据进行比较,以确定任何趋势。报告逻辑301f用于生成任何标准或自定义报告,诸如指数加权移动平均功率(EWMA)、平均功率(AVG.功率)、总能量等。
图4示出了根据一些实施例的在平台的片上系统处于低功率模式(例如,S0iX)时通过主机软件精确地测量平台功率的事件流程图400。流程图400总结了OS 301、PMC 103、功率累加器102和逻辑401之间启动系统唤醒事件的的消息传递协议。
在各种实施例中,OS 301发起系统休眠,如箭头402所示。OS 301通知PMC 103启动SoC 101的低功率模式。PMC 102识别系统休眠流中的适当阶段,以在系统从系统活动状态(S0)转换到系统低功率状态(S0iX)时发起功率测量。在一些实施例中,PMC 102将通用I/O(GPIO)接口上的GPIO信号切换到低,这是对功率累加器102重置计数器和开始测量功率的指示。这由箭头403表示。功率累加器103开始测量平台功率,并在数据寄存器102c中内部地记录数据,如箭头404所示。
在平台唤醒事件时,如箭头405所示,PMC 103将GPIO信号断言为高。该指示406通知功率累加器102停止测量地板功率,如箭头408所示。PMC 103使SoC 101回到活动状态(例如,S0),并且OS上下文被恢复。OS 301然后从功率累加器102读取测量数据,如箭头409所示。功率累加器102将测量功率返回到OS 301数据,如箭头410所示。在一些实施例中,在用户模式下,诸如的功率计工具(Power Meter Tool)之类的应用程序可以用于分析数据。在一些实施例中,功率计工具使用I2C命令从功率累加器102读取存储的数据。功率计工具可以收集多个周期的低功率读数,并将相关功率数据呈现给用户。
图5示出了根据一些实施例的用于将消息从功率管理控制器(PMC)驱动到功率累加器的通用输入-输出(GPIO)的流程图500。虽然各个框以特定顺序显示,但该顺序可以修改。例如,流程图500的一些框可以与其他框并行执行。
流程图500从框501开始,其中系统(例如,SoC)处于活动状态(例如,S0)。管理功率状态的PMC 103等待进入低功率模式的任何指令。例如,OS 301向PMC 103发送表示希望进入深休眠状态S0iX或任何其他低功率模式(LPM)的事件信号。事件信号可以指示S0iX预条件。
在框502处,PMC 103在开始转换到LPM或S0iX状态的处理之前,确认S0iX预条件是否满足。S0iX预条件的一个示例是,SoC内部和平台中或平台上的各种组件(例如,图形卡、摄像头、音频、通用串行总线(USB)设备等)处于空闲状态,并进入LPM以允许平台(和SoC)进入LPM。如果不满足预条件,则PMC 103等待该预条件并且SoC继续处于活动模式(例如,S0状态)。如果满足预条件,则PMC 103向功率管理集成电路(PMIC)发送低功率模式信号,以将SoC和/或计算机平台置于S0iX或LPM状态,如框503所指示的。图6的框2412示出了PMIC的一个示例。回到图5,在一个示例中,PMC 103经由其各自的SoC 101的管脚向PMIC断言SLP_S0信号或STANDBY_READY信号。在框504处,PMC 103检查功率累加器102是否准备好开始测量。例如,PMC 103检查是否断言了POWER_ACCUMULATOR_LPM_ENABLE信号。POWER_ACCUMULATOR_LPM_ENABLE信号可以是SoC 101或SoC 101的管脚与功率累加器102通信的内部信号。如果PMC 103确定功率累加器102准备好开始测量,则处理进入框505。
在框505处,PMC 103经由SoC 101的GPIO管脚与功率累加器102通信,以指示功率累加器102开始功率测量。在一个示例中,PMC 103驱动GPIO_COUNTER_RESET信号(或管脚)为高,以指示功率累加器开始功率测量。功率累加器102中的计数器被重置为零,使得计数器可以从低功率模式的起始开始计数,直到低功率模式结束。在PMC 103驱动GPIO_COUNTER_RESET信号(或管脚)为高之后,PMC 103等待功率累加器102中的计数器重置,然后驱动GPIO_COUNTER_RESET信号(或管脚)为低,以指示计数器现在可以开始计数。然后,处理进入框506。
在框506处,计算系统进入S0iX或LPM状态,并且功率累加器102开始测量一个或多个电源轨上的功率(例如,轨1到N,其中“N”是数字)。在该处理器件,计数器保持计数。只要指示系统处于LPM或S0iX状态,功率累加器102就持续测量功率。然后,该过程开始框507。
在框507处,PMC 103保持监视对从LPM或S0iX状态唤醒计算系统的任何唤醒事件。PMC 103持续检查是否有任何唤醒事件,并且一旦它发现一个唤醒事件,则处理进行到框508。否则,该处理保持在框507中,并且功率累加器持续测量功率。
在框508处,PMC 103向PMIC发送唤醒信号,然后等待PMIC退出其待机状态(低功率状态)。在PMIC退出待机状态之后,PMC 103驱动GPIO上的信号以通知功率累加器102停止测量。例如,PMC 103驱动GPIO_COUNTER_RESET引脚(或信号)为高,以通知功率累加器102停止功率测量过程。在框509处,功率累加器102从PMC 103接收停止测量的指令,并将测量数据存储在存储器(例如,数据寄存器102c)中。然后,处理进行到框510,其中计算系统进入正常或活动状态S0。主机软件或任何其他软件(如的功率计工具)都可以读取测量的功率数据并对其执行任何分析。
一些实施例的元件也被提供为用于存储计算机可执行指令(例如,用于实现本文所讨论的任何其它处理的指令)的机器可读介质(例如,存储器)。在一些实施例中,计算平台包括存储器、处理器、机器可读存储介质(也称为有形机器可读介质)、通信接口(例如,无线或有线接口)以及将它们耦合的网络总线。
在一些实施例中,处理器是数字信号处理器(DSP)、专用集成电路(ASIC)、通用中央处理单元(CPU)、或实现简单有限状态机以执行流程图400、500和/或各种实施例等的方法的低功率逻辑等。
在一些实施例中,系统的各种逻辑块经由网络总线耦合在一起。可以使用任何合适的协议来实现网络总线。在一些实施例中,机器可读存储介质包括用于智能地预测处理器空闲时间的指令(也称为程序软件代码/指令),如参考各种实施例和流程图所述。
与流程图400、500(和/或各种实施例)相关联并且被执行以实现所公开主题的实施例的程序软件代码/指令可以被实现为下列项的一部分:操作系统或特定应用程序、组件、程序、对象、模块、例程、或其他指令序列或指令序列组织,称为“程序软件代码/指令”、“操作系统程序软件代码/指令”、“应用程序软件代码/指令”,或简称“软件”或嵌入处理器中的固件。在一些实施例中,与流程图400、500(和/或各种实施例)相关联的程序软件代码/指令由计算机系统执行。
在一些实施例中,与流程图400、500(和/或各种实施例)相关联的程序软件代码/指令被存储在计算机可执行存储介质中并由处理器执行。这里,计算机可执行存储介质是可用于存储程序软件代码/指令和数据的有形机器可读介质,当由计算设备执行时,使得一个或多个处理器执行可在针对所公开的主题的一个或多个附随权利要求中叙述的(一个或多个)方法。
有形机器可读介质可以包括各种有形位置中的可执行软件程序代码/指令和数据的存储装置,包括例如ROM、易失性RAM、非易失性存储器和/或缓存和/或本申请中引用的其它有形存储器。该程序软件代码/指令和/或数据的部分可以存储在这些存储装置和存储设备中的任何一者中。此外,程序软件代码/指令可以从其他存储装置获得,包括例如通过集中服务器或对等网络等,包括互联网。软件程序代码/指令和数据的不同部分可以在不同的时间、在不同的通信会话中或在同一通信会话中获得。
软件程序代码/指令(与流程图400、500和其他实施例相关联)和数据可以在由计算设备执行相应的软件程序或应用程序之前全部获得。替代地,当需要执行时,可以动态地(例如,及时地)获得软件程序代码/指令和数据的部分。替代地,例如,对于不同的应用程序、组件、程序、对象、模块、例程、或其他指令序列或指令序列组织,这些获得软件程序代码/指令和数据的方式的一些组合可能会发生。因此,在特定的时间实例中,不要求数据和指令全部位于有形的机器可读介质上。
有形计算机可读介质的示例包括但不限于可记录和不可记录类型的介质,诸如易失性和非易失性存储设备、只读存储器(ROM)、随机存取存储器(RAM)、闪存设备、磁性随机存取存储器、铁电存储器、软盘和其他可移动磁盘、磁存储介质、光存储介质(如光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)等)等。软件程序代码/指令可以临时存储在数字有形通信链路中,同时例如通过这种有形通信链路实现诸如载波、红外信号、数字信号等之类的电、光、声或其他形式的传播信号。
一般而言,有形机器可读介质包括以机器(即,计算设备)可访问的形式提供(即,以数字形式存储和/或发送,例如数据分组)信息的任何有形机制,信息可以包括在例如通信设备、计算设备、网络设备、个人数字助理、制造工具、移动通信设备中,而无论是否能够从诸如互联网(例如,等)之类的通信网络或任何其他设备(包括计算设备)下载和运行应用程序和补贴应用程序。在一个实施例中,基于处理器的系统是PDA(个人数字助理)、蜂窝电话、笔记本电脑、平板电脑、游戏机、机顶盒、嵌入式系统、TV(电视)、个人台式计算机等的形式或包括在其中。替代地,传统通信应用程序和(一个或多个)补贴应用程序可以在所公开主题的一些实施例中使用。
图6示出了根据各种实施例的当平台的SoC处于低功率模式(例如,S0iX)时,通过主机软件精确地测量平台功率的智能设备或计算机系统或SoC(片上系统)。需要指出的是,图6的具有与任何其他图的元素相同的参考标号(或名称)的那些元素可以以与所描述的类似的任何方式操作或起作用,但不限于此。
在一些实施例中,设备2400表示适当的计算设备,诸如计算平板电脑、移动电话或智能电话、笔记本电脑、台式机、物联网(IOT)设备、服务器、可穿戴设备、机顶盒、支持无线的电子阅读器等。应当理解,总体示出了某些组件,而不是在设备2400中示出了这种设备的所有组件。
在一个示例中,设备2400包括SoC(片上系统)2401。在图6中使用虚线示出了SOC2401的示例边界,其中一些示例组件被示出包括在SOC 2401内–然而,SOC 2401可以包括设备2400的任何适当组件。
在一些实施例中,设备2400包括处理器2404。处理器2404可以包括一个或多个物理设备,诸如微处理器、应用处理器、微控制器、可编程逻辑器件、处理核或其他处理装置。由处理器2404执行的处理操作包括在其上执行应用和/或设备功能的操作平台或操作系统的执行。处理操作包括与人类用户或其他设备的I/O(输入/输出)相关的操作、与功率管理相关的操作、与将计算设备2400连接到另一设备相关的操作等。处理操作还可以包括与音频I/O和/或显示I/O相关的操作。
在一些实施例中,处理器2404包括多个处理核(也称为核)2408a、2408b、2408c。尽管图6中仅示出三个核2408a、2408b、2408c,但是处理器2404可以包括任何其他适当数量的处理核,例如,数十个或甚至数百个处理核。可以在单个集成电路(IC)芯片上实现处理器核2408a、2408b、2408c。此外,芯片可以包括一个或多个共享和/或私有的缓存、总线或互连、图形和/或存储器控制器、或其他组件。
在一些实施例中,处理器2404包括缓存2406。在一个示例中,缓存2406的部分可以专用于各个核2408(例如,缓存2406的第一部分专用于核2408a,缓存2406的第二部分专用于核2408b,以此类推)。在一个示例中,缓存2406的一个或多个部分可以在两个或多个核2408之间共享。缓存2406可以分为不同的级别,例如,级别1(L1)缓存、级别2(L2)缓存、级别3(L3)缓存等。
在一些实施例中,处理器核2404可以包括获取单元,以获取用于由核2404执行的指令(包括具有条件分支的指令)。可以从诸如存储器2430之类的任何存储设备获取指令。处理器核2404还可以包括解码单元,以解码所获取的指令。例如,解码单元可以将所获取的指令解码为多个微操作。处理器核2404可以包括调度单元,以执行与存储经解码的指令相关联的各种操作。例如,调度单元可以保存来自解码单元的数据,直到指令准备好分派为止,例如,直到经解码的指令的所有源值变得可用为止。在一个实施例中,调度单元可以将经解码的指令调度和/或发出(或分派)到执行单元以供执行。
执行单元可以在所分派的指令被解码(例如,由解码单元)和分派(例如,由调度单元)之后执行这些所分派的指令。在一个实施例中,执行单元可以包括一个以上的执行单元(诸如成像计算单元、图形计算单元、通用计算单元等)。执行单元还可以执行各种算术运算,诸如加法、减法、乘法和/或除法,并且可以包括一个或多个算术逻辑单元(ALU)。在一个实施例中,协同处理器(未示出)可以与执行单元一起执行各种算术运算。
进一步地,执行单元可以执行无序的指令。因此,在一个实施例中,处理器核2404可以是无序处理器核。处理器核2404还可以包括引退单元(retirement unit)。引退单元可以在指令被执行后将其引退。在一个实施例中,经执行的指令的引退可以使得从指令的执行提交处理器状态、由指令所使用的物理寄存器被去分派等。处理器核2404还可以包括总线单元,以使处理器核2404的组件与其他组件之间能够经由一条或多条总线进行通信。处理器核2404还可以包括一个或多个寄存器,以存储由核2404的各个组件访问的数据(诸如与分配的应用优先级和/或子系统状态(模式)关联相关的值)。
在一些实施例中,设备2400包括连接电路2431。例如,连接电路2431包括硬件设备(例如,无线和/或有线连接器和通信硬件)和/或软件组件(例如,驱动器、协议栈),例如,以使设备2400能够与外部设备进行通信。设备2400可以与诸如其他计算设备、无线接入点或基站等之类的外部设备分离。
在一个示例中,连接电路2431可以包括多个不同类型的连接性。概括地说,连接电路2431可以包括蜂窝连接电路、无线连接电路等。连接电路2431的蜂窝连接电路通常是指由无线运营商提供的蜂窝网络连接,诸如经由GSM(全球移动通信系统)或变体或衍生物、CDMA(码分多址)或变体或衍生物、TDM(时分复用)或变体或衍生物、第三代合作伙伴项目(3GPP)通用移动通信系统(UMTS)系统或变体或衍生物、3GPP长期演进(LTE)系统或变体或衍生物、3GPP高级LTE(LTE-A)系统或变体或衍生物、第五代(5G)无线系统或变体或衍生物、5G移动网络系统或变体或衍生物、5G新无线电(NR)系统或变体或衍生物、或其他蜂窝服务标准来提供。连接电路2431的无线连接电路(或无线接口)是指非蜂窝的无线连接性,并且可以包括个域网(诸如蓝牙、近场等)、局域网(诸如Wi-Fi)和/或广域网(诸如WiMax)和/或其他无线通信。在一个示例中,连接电路2431可以包括网络接口,诸如有线或无线接口,例如使得系统实施例可以被并入无线设备(例如,蜂窝电话或个人数字助理)中。
在一些实施例中,设备2400包括控制集线器2432,其表示与一个或多个I/O设备的交互相关的硬件设备和/或软件组件。例如,处理器2404可以经由控制集线器2432与显示器2422、一个或多个外围设备2424、存储设备2428、一个或多个其他外部设备2429等中的一者或多者进行通信。控制集线器2432可以是芯片组、平台控制集线器(PCH)等。
例如,控制集线器2432示出了用于连接到设备2400的附加设备的一个或多个连接点,例如,用户可以通过这些连接点与系统进行交互。例如,可以附接到设备2400的设备(例如,设备2429)包括麦克风设备、扬声器或立体声系统、音频设备、视频系统或其他显示设备、键盘或键盘设备、或用于诸如读卡器或其他设备之类的特定应用的其他I/O设备。
如上所述,控制集线器2432可以与音频设备、显示器2422等进行交互。例如,通过麦克风或其他音频设备的输入可以为设备2400的一个或多个应用或功能提供输入或命令。另外,替代显示输出或者在除了显示输出之外,可以提供音频输出。在另一示例中,如果显示器2422包括触摸屏,则显示器2422还充当输入设备,其至少可以部分地由控制集线器2432管理。在计算设备2400上还可以存在附加的按钮或开关,以提供通过控制集线器2432管理的I/O功能。在一个实施例中,控制集线器2432管理诸如加速计、相机、光传感器或其他环境传感器之类的设备,或者可以包括在设备2400中的其他硬件。输入可以是直接用户交互的一部分,并为系统提供环境输入以影响其操作(诸如过滤噪声、调整显示器以进行亮度检测、为相机应用闪光灯或其他特征)。
在一些实施例中,控制集线器2432可以使用任何适当的通信协议耦合到各种设备,例如,PCIe(外围组件互连快速)、USB(通用串行总线)、雷电接口(Thunderbolt)、高清多媒体接口(HDMI)、火线(Firewire)等。
在一些实施例中,显示器2422表示硬件(例如,显示设备)和软件(例如,驱动器)组件,其为用户提供视觉和/或触觉显示以与设备2400进行交互。显示器2422可以包括显示接口、显示屏、和/或用于向用户提供显示的硬件设备。在一些实施例中,显示器2422可以包括提供到用户的输出和输入两者的触摸屏(或触摸板)设备。在一个示例中,显示器2422可以直接与处理器2404通信。显示器2422可以是(如在移动电子设备或膝上型计算机设备中的)内部显示设备或经由显示接口(例如显示端口(DisplayPort)等)附接的外部显示设备中的一者或多者。在一个实施例中,显示器2422可以是头戴式显示器(HMD),诸如用于虚拟现实(VR)应用或增强现实(AR)应用的立体显示设备。
在一些实施例中,尽管图中未示出,但是除了(或代替)处理器2404,设备2400还可以包括包含一个或多个图形处理核的图形处理单元(GPU),其可以控制在显示器2422上显示内容的一个或多个方面。
控制集线器2432(或平台控制器集线器)可以包括硬件接口和连接器,以及软件组件(例如,驱动器、协议栈),以进行例如到外围设备2424的外围连接。
将理解,设备2400既可以是到其他计算设备的外围设备,也可以具有连接到它的外围设备。设备2400可以具有“对接(docking)”连接器以连接到其他计算设备,用于诸如管理(例如,下载和/或上载、更改、同步)设备2400上的内容。另外,对接连接器可以允许设备2400连接到允许计算设备2400控制内容输出(例如,到视听或其他系统)的某些外围设备。
除了专用对接连接器或其他专用连接硬件外,设备2400还可以经由通用或基于标准的连接器进行外围连接。通用类型可以包括通用串行总线(USB)连接器(可以包括许多不同硬件接口中的任何一个)、显示端口(包括迷你显示端口(MiniDisplayPort,MDP)、高清多媒体接口(HDMI)、火线或其他类型。
在一些实施例中,例如除了直接耦合到处理器2404之外或者代替直接耦合到处理器2404,连接电路2431可以耦合到控制集线器2432。在一些实施例中,例如除了直接耦合到处理器2404之外或者代替直接耦合到处理器2404,显示器2422可以耦合到控制集线器2432。
在一些实施例中,设备2400包括经由存储器接口2434耦合到处理器2404的存储器2430。存储器2430包括用于在设备2400中存储信息的存储器设备。
在一些实施例中,存储器2430包括用于维持稳定时钟的装置,如参考各种实施例所述。存储器可以包括非易失性(如果存储器设备的电源中断,则状态不会改变)和/或易失性(如果存储器设备的电源中断,则状态是不确定的)存储器设备。存储器设备2430可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备、相变存储器设备、或具有适当性能以用作处理存储器的其他存储器设备。在一个实施例中,存储器2430可以用作设备2400的系统存储器,以存储数据和指令以用于在一个或多个处理器2404执行应用程序或处理时使用。存储器2430可以存储应用程序数据、用户数据、音乐、照片、文档或其他数据,以及与设备2400执行应用程序和功能相关的系统数据(无论是长期的还是临时的)。
各种实施例和示例的元件还被提供为机器可读介质(例如,存储器2430),用于存储计算机可执行指令(例如,用于实现本文讨论的任何其他处理的指令)。机器可读介质(例如,存储器2430)可以包括但不限于闪存、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡、相变存储器(PCM)、或适合存储电子或计算机可执行指令的其他类型的机器可读介质。例如,本公开的实施例可以作为计算机程序(例如,BIOS)而被下载,该计算机程序可以经由通信链路(例如,调制解调器或网络连接)以数据信号的方式从远程计算机(例如,服务器)传送到请求计算机(例如,客户端)。
在一些实施例中,设备2400包括温度测量电路2440,例如,用于测量设备2400的各种组件的温度。在一个示例中,温度测量电路2440可以被嵌入、耦合或附接到要测量和监测其温度的各种组件。例如,温度测量电路2440可以测量核2408a、2408b、2408c、稳压器2414、存储器2430、SOC 2401的主板、和/或设备2400的任何适当组件中的一者或多者的温度(或内部温度)。
在一些实施例中,设备2400包括功率测量电路2442,例如,用于测量由设备2400的一个或多个组件消耗的功率。在一个示例中,除了测量功率之外或者代替测量功率,功率测量电路2442还可以测量电压和/或电流。在一个实例中,功率测量电路2442可以被嵌入、耦合或附接到要测量和监测其功率、电压和/或电流的各种组件。例如,功率测量电路2442可以测量由一个或多个稳压器2414供应的功率、电流和/或电压、供应给SOC 2401的功率、供应给设备2400的功率、由设备2400的处理器2404(或任何其他组件)消耗的功率等。在一些实施例中,根据各种实施例,功率测量电路2442包括功率累加器以当平台的SoC处于低功率模式(例如,S0iX)时通过主机软件精确地测量平台功率。
在一些实施例中,设备2400包括一个或多个稳压器电路,通常称为稳压器(VR)2414。VR 2414以适当的电压电平生成信号,这些信号可以被供应以操作设备2400的任何适当组件。仅作为示例,VR 2414被示为向设备2400的处理器2404供应信号。在一些实施例中,VR 2414接收一个或多个电压识别(VID)信号,并基于VID信号生成适当电平的电压信号。各种类型的VR可以用于VR 2414。例如,VR 2414可以包括“降压”VR、“升压”VR、降压和升压VR的组合、低压差(LDO)调节器、开关DC-DC调节器、基于恒定导通时间控制器的DC-DC调节器等。降压VR通常用于需要将输入电压以比单位更小的比率转换为输出电压的功率输送应用中。升压VR通常用于需要将输入电压以比单位更大的比率转换为输出电压的功率输送应用中。在一些实施例中,每个处理器核都具有其自己的VR,其由PCU 2410a/b和/或PMIC 2412控制。在一些实施例中,每个核都具有分布式LDO的网络,以提供对功率管理的有效控制。LDO可以是数字的、模拟的、或数字或模拟LDO的组合。在一些实施例中,VR 2414包括电流跟踪装置以测量通过(一个或多个)电源轨的电流。
在一些实施例中,设备2400包括一个或多个时钟生成器电路,通常称为时钟生成器2416。时钟生成器2416以适当的频率水平生成时钟信号,其可被供应给设备2400的任何适当组件。仅作为示例,时钟生成器2416被示为向设备2400的处理器2404供应时钟信号。在一些实施例中,时钟生成器2416接收一个或多个频率识别(FID)信号,并基于FID信号以适当的频率生成时钟信号。
在一些实施例中,设备2400包括向设备2400的各种组件供电的电池2418。仅作为示例,电池2418被示为向处理器2404供电。尽管图中未示出,但是设备2400可以包括充电电路,例如,基于从AC适配器接收的交流电(AC)电源对电池再充电。
在一些实施例中,设备2400包括功率控制单元(PCU)2410(也称为功率管理单元(PMU)、功率控制器等)。在一个实例中,PCU 2410的一些部分可以由一个或多个处理核2408实现,并且PCU 2410的这些部分使用虚线框象征性地示出并被标记为PCU 2410a。在一个示例中,PCU 2410的一些其他部分可以在处理核2408之外实现,并且PCU 2410的这些部分使用虚线框象征性地示出并被标记为PCU 2410b。PCU 2410可以实现设备2400的各种功率管理操作。PCU 2410可以包括硬件接口、硬件电路、连接器、寄存器等、以及软件组件(例如,驱动器、协议栈),以实现设备2400的各种功率管理操作。
在一些实施例中,设备2400包括功率管理集成电路(PMIC)2412,例如,以实现设备2400的各种功率管理操作。在一些实施例中,PMIC 2412是可重构功率管理IC(RPMIC)和/或IMVP(移动电压定位)。在一个示例中,PMIC位于独立于处理器2404的IC芯片内。可以实现设备2400的各种功率管理操作。PMIC 2412可以包括硬件接口、硬件电路、连接器、寄存器等、以及软件组件(例如,驱动器、协议栈),以实现设备2400的各种功率管理操作。
在一个实例中,设备2400包括PCU 2410或PMIC 2412中的一者或两者。在一个实例中,PCU 2410或PMIC 2412中的任一者在设备2400中可能不存在,并且因此,使用虚线示出这些组件。
设备2400的各种功率管理操作可以由PCU 2410、PMIC 2412、或PCU 2410和PMIC2412的组合来执行。例如,PCU 2410和/或PMIC 2412可以为设备2400的各种组件选择功率状态(例如,P状态)。例如,PCU 2410和/或PMIC 2412可以为设备2400的各种组件选择功率状态(例如,根据ACPI(高级配置和电源接口)规范)。仅作为示例,PCU 2410和/或PMIC 2412可以使设备2400的各种组件转换到睡眠状态、活动状态、适当的C状态(例如,C0状态或另一适当C状态,根据ACPI规范)等。在一个示例中,PCU 2410和/或PMIC 2412可以控制由VR2414输出的电压和/或由时钟生成器输出的时钟信号的频率,例如,通过分别输出VID信号和/或FID信号。在一个示例中,PCU 2410和/或PMIC 2412可以控制电池功率使用、电池2418的电荷、以及与节电操作相关的特征。
时钟生成器2416可以包括锁相环(PLL)、锁频环(FLL)或任何合适的时钟源。在一些实施例中,处理器2404的每个核都具有其自己的时钟源。因此,每个核都可以在独立于其他核的操作频率的频率下操作。在一些实施例中,PCU 2410和/或PMIC 2412执行自适应或动态频率缩放或调整。例如,如果处理器核没有在其最大功耗阈值或限制下操作,则可以增加处理器核的时钟频率。在一些实施例中,PCU 2410和/或PMIC 2412确定处理器的每个核的操作条件,并且当PCU 2410和/或PMIC 2412确定核在低于目标性能水平而操作时,适时地调整该核的频率和/或电源电压而不使核时钟源(例如,该核的PLL)失锁。例如,如果核从电源轨吸取的电流小于分配给该核或处理器2404的总电流,则PCU 2410和/或PMIC 2412可以暂时性地增加该核或处理器2404的功率吸取(例如,通过增加时钟频率和/或电源电压电平),使得核或处理器2404能够在更高的性能水平执行。这样,可以在不损害产品可靠性的情况下暂时性地增加处理器2404的电压和/或频率。
在一个示例中,PCU 2410和/或PMIC 2412可以执行功率管理操作,例如,至少部分地基于接收来自功率测量电路2442、温度测量电路2440的测量、电池2418的电荷水平、和/或可以用于功率管理的任何其他适当信息。为此,PMIC 2412可通信地耦合到一个或多个传感器以感测/检测对系统/平台的功率/热行为有影响的一个或多个因素中的各种值/变化。该一个或多个因素的示例包括电流、电压降、温度、操作频率、操作电压、功耗、核间通信活动等。这些传感器中的一个或多个可以与计算系统的一个或多个组件或逻辑/IP块物理接近(和/或热接触/耦合)。另外,在至少一个实施例中,(一个或多个)传感器可以直接耦合到PCU 2410和/或PMIC 2412,以允许PCU 2410和/或PMIC 2412至少部分地基于由一个或多个传感器检测的(一个或多个)值来管理处理器核能量。
还示出了设备2400的示例软件堆栈(但并未示出软件堆栈的所有元素)。仅作为示例,处理器2404可以执行应用程序2450、操作系统2452、一个或多个功率管理(PM)特定应用程序(例如,通常称为PM应用2458)等。PM应用2458还可以由PCU 2410和/或PMIC 2412执行。OS 2452还可以包括一个或多个PM应用2456a、2456b、2456c。OS 2452还可以包括各种驱动程序2454a、2454b、2454c等,其中一些驱动程序可专门用于功率管理目的。在一些实施例中,设备2400还可以包括基本输入/输出系统(BIOS)2420。BIOS 2420可以与OS 2452通信(例如,经由一个或多个驱动器2454)、与处理器2404通信等。
例如,PM应用2458、2456、驱动器2454、BIOS 2420等中的一个或多个可以用于实现功率管理特定任务,例如,控制设备2400的各种组件的电压和/或频率,控制设备2400的各种组件的唤醒状态、睡眠状态和/或任何其他适当的功率状态,控制电池2418的电池功率使用、电荷,与节电操作相关的特征等。
说明书中对“实施例”、“一个实施例”、“一些实施例”或“其他实施例”的引用意味着结合这些实施例描述的特定特征、结构或特性至少包括在一些实施例中,但不一定包括在所有实施例中。“实施例”、“一个实施例”或“一些实施例”的各种出现不一定都指相同的实施例。如果说明书陈述“可以”、“可能”或“可”包括组件、特征、结构或特性,则不需要包括该特定组件、特征、结构或特性。如果说明书或权利要求提及“一”或“一个”元件,这并不意味着只有一个元件。如果说明书或权利要求提及“附加”元件,则不排除存在一个以上的附加元件。
此外,特定特征、结构、功能或特性可以在一个或多个实施例中以任何合适的方式组合。例如,可以在与第一实施例和第二实施例相关联的特定特征、结构、功能或特性不相互排斥的任何情况下组合第一实施例与第二实施例。
虽然已经结合其具体实施例描述了本公开,但是根据前述描述,对于本领域的普通技术人员来说,这些实施例的许多替代方案、修改和变化将是显而易见的。本公开的实施例旨在包含落入所附权利要求的广泛范围内的所有此类替代、修改和变化。
此外,为了简化说明和讨论并且为了不模糊本公开,在所示附图中可能示出也可能未示出到集成电路(IC)芯片和其他组件的众所周知的电源/接地连接。此外,可以以框图形式示出布置以避免模糊本公开,并且还考虑到关于此类框图布置的实施方式的细节高度依赖于将在其中实施本公开的平台(即,这些细节应该在本领域技术人员的视界范围内)。在为了描述本公开的示例性实施例而阐述具体细节(例如,电路)的情况下,对于本领域技术人员来说显而易见的是,本公开可以在没有这些特定细节或改变这些特定细节的情况下实践。因此,说明书被认为是说明性的而不是限制性的。
本文中描述的各种实施例被示为示例。这些示例的特征可以以任何合适的方式相互组合。这些示例包括:
示例1:一种装置,包括:一个或多个通道,用于接收电源线;输入,用于从功率管理控制器接收指令,所述指令用于开始对电源线的功率测量,并响应于处理器处于低功率模式而生成功率的测量数据;存储器,用于存储测量数据;以及输入-输出(I/O)接口,用于与操作系统通信,其中操作系统访问测量数据。
示例2:示例1所述的装置,包括模数转换器(ADC),用于将电源线上的电压和/或电流转换为数字表示,其中测量数据对应于数字表示。
示例3:示例1所述的装置,其中,操作系统向功率管理控制器发起低功率模式。
示例4:示例3所述的装置,其中,功率管理控制器响应于由操作系统发起低功率模式而使得功率测量开始。
示例5:示例1所述的装置,其中,功率管理控制器响应于唤醒事件而使功率测量停止。
示例6:示例1所述的装置,其中,操作系统包括API,用于由应用程序处理测量数据。
示例7:示例1所述的装置,其中,一个或多个通道耦合到一个或多个稳压器。
示例8:示例1所述的装置,其中,功率管理控制器是片上系统(SoC)的一部分。
示例9:示例1所述的装置,其中,指令包括用于开始功率测量的指令和用于停止功率测量的指令。
示例10:示例1所述的装置,其中,输入是通用I/O(GPIO)接口。
示例11:示例1所述的装置,其中,低功率模式是S0iX状态。
示例12:一种装置,包括:多个处理器核;功率管理控制器(PMC),耦合到多个处理器核,并用于管理多个处理器核的功率和/或使装置进入低功率模式;以及输出,用于与功率累加器通信,其中,PMC使功率累加器在装置进入低功率模式时测量由装置消耗的功率。
示例13:示例12所述的装置,其中,PMC使功率累加器在装置退出低功率模式时停止测量由装置消耗的功率。
示例14:示例12所述的装置,其中,功率累加器向操作系统提供测量的功率。
示例15:示例14所述的装置,其中,操作系统包括API,用于由应用程序处理测量的功率。
示例16:示例12所述的装置,其中,低功率模式是S0iX状态。
示例17:一种系统,包括:功率累加器;片上系统,耦合到功率累加器,其中片上系统包括:多个处理器核;功率管理控制器(PMC),耦合到多个处理器核,并用于管理多个处理器核的功率和/或使片上系统进入低功率模式;以及输出,用于与功率累加器通信,其中PMC使功率累加器在片上系统进入低功率模式时测量由片上系统消耗的功率,其中功率累加器存储测量的功率作为测量数据;以及输入-输出(IO)接口,用于与操作系统通信,其中操作系统访问测量数据。
示例18:示例17所述的系统,其中,功率累加器包括模数转换器(ADC),用于将电源线上的电压和/或电流转换为数字表示,其中电源线向片上系统供电,并且其中测量数据对应于数字表示。
示例19:示例17所述的系统,其中,操作系统向PMC发起低功率模式。
示例20:示例19所述的系统,其中,PMC使得响应于操作系统发起低功率模式而开始功率测量。
提供了摘要,将使读者能够确定技术公开的性质和要点。该摘要是在理解它将不被用于限制权利要求的范围或含义的情况下提交的。权利要求在此并入具体实施方式中,并且每项权利要求单独作为一个实施例。
Claims (26)
1.一种用于测量平台功率的装置,所述装置包括:
一个或多个通道,用于接收电源线;
输入,用于从功率管理控制器接收指令,所述指令用于开始对所述电源线的功率测量,并响应于处理器处于低功率模式而生成功率的测量数据;
存储器,用于存储所述测量数据;以及
输入-输出(I/O)接口,用于与操作系统通信,其中,所述操作系统访问所述测量数据。
2.根据权利要求1所述的装置,包括模数转换器(ADC),用于将所述电源线上的电压和/或电流转换为数字表示,其中,所述测量数据对应于所述数字表示。
3.根据权利要求1所述的装置,其中,所述操作系统向所述功率管理控制器发起所述低功率模式。
4.根据权利要求3所述的装置,其中,所述功率管理控制器响应于由所述操作系统发起所述低功率模式而使得功率测量开始。
5.根据权利要求1所述的装置,其中,所述功率管理控制器响应于唤醒事件而使功率测量停止。
6.根据权利要求1所述的装置,其中,所述操作系统包括API,用于由应用程序处理所述测量数据。
7.根据权利要求1所述的装置,其中,所述一个或多个通道耦合到一个或多个稳压器。
8.根据权利要求1所述的装置,其中,所述功率管理控制器是片上系统(SoC)的一部分。
9.根据权利要求1所述的装置,其中,所述指令包括用于开始功率测量的指令和用于停止功率测量的指令。
10.根据权利要求1所述的装置,其中,所述输入是通用I/O(GPIO)接口。
11.根据权利要求1至10中任一项所述的装置,其中,所述低功率模式是S0iX状态。
12.一种用于测量平台功率的装置,所述装置包括:
多个处理器核;
功率管理控制器(PMC),耦合到所述多个处理器核,并用于管理所述多个处理器核的功率和/或使所述装置进入低功率模式;以及
输出,用于与功率累加器通信,其中,所述PMC使所述功率累加器在所述装置进入所述低功率模式时测量由所述装置消耗的功率。
13.根据权利要求12所述的装置,其中,所述PMC使所述功率累加器在所述装置退出所述低功率模式时停止测量由所述装置消耗的功率。
14.根据权利要求12所述的装置,其中,所述功率累加器向操作系统提供测量的功率。
15.根据权利要求14所述的装置,其中,所述操作系统包括API,用于由应用程序处理所述测量的功率。
16.根据权利要求12至15中任一项所述的装置,其中,所述低功率模式是S0iX状态。
17.一种系统,包括:
功率累加器;
片上系统,耦合到所述功率累加器,其中,所述片上系统包括:
多个处理器核;
功率管理控制器(PMC),耦合到所述多个处理器核,并用于管理所述多个处理器核的功率和/或使所述片上系统进入低功率模式;以及
输出,用于与所述功率累加器通信,其中,所述PMC使所述功率累加器在所述片上系统进入所述低功率模式时测量由所述片上系统消耗的功率,其中,所述功率累加器存储测量的功率作为测量数据;以及
输入-输出(IO)接口,用于与操作系统通信,其中,所述操作系统访问所述测量数据。
18.根据权利要求17所述的系统,其中,所述功率累加器包括模数转换器(ADC),用于将电源线上的电压和/或电流转换为数字表示,其中,所述电源线向所述片上系统供电,并且其中,所述测量数据对应于所述数字表示。
19.根据权利要求17所述的系统,其中,所述操作系统向所述功率管理控制器发起所述低功率模式。
20.根据权利要求19所述的系统,其中,所述功率管理控制器使得响应于所述操作系统发起所述低功率模式而开始功率测量。
21.一种用于测量平台功率的方法,所述方法包括:
通过输入接收来自功率管理控制器的指令,所述指令用于开始对电源线的功率测量,并响应于处理器处于低功率模式而生成功率的测量数据;
将所述测量数据存储在存储器中;以及
通过输入-输出(I/O)接口与操作系统通信,其中,所述操作系统访问所述测量数据。
22.根据权利要求21所述的方法,包括通过模数转换器(ADC)将所述电源线上的电压和/或电流转换为数字表示,其中,所述测量数据对应于所述数字表示。
23.根据权利要求22所述的方法,其中,所述操作系统向所述功率管理控制器发起所述低功率模式。
24.根据权利要求23所述的方法,包括响应于由所述操作系统发起所述低功率模式而开始功率测量。
25.根据权利要求23所述的方法,包括响应于唤醒事件而停止功率测量。
26.一种具有机器可执行指令的机器可读存储介质,所述机器可执行指令在被执行时使一个或多个机器执行根据权利要求21至25中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN202041019672 | 2020-05-09 | ||
IN202041019672 | 2020-05-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113625045A true CN113625045A (zh) | 2021-11-09 |
Family
ID=78232047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011390865.5A Pending CN113625045A (zh) | 2020-05-09 | 2020-12-02 | 用于精确测量平台功率的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11422173B2 (zh) |
CN (1) | CN113625045A (zh) |
DE (1) | DE102020132082A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11698751B2 (en) * | 2021-06-07 | 2023-07-11 | Western Digital Technologies, Inc. | Data storage device and method for low-latency power state transitions by having power islanding in a host memory buffer |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144187A (en) * | 1998-11-12 | 2000-11-07 | Fairchild Semiconductor Corporation | Power measurement for adaptive battery charger |
KR100599166B1 (ko) * | 2003-11-24 | 2006-07-12 | 삼성전자주식회사 | 복수의 디지털 방송 신호 수신이 가능한 디지털 방송 처리시스템 및 그 방법 |
US8949637B2 (en) * | 2011-03-24 | 2015-02-03 | Intel Corporation | Obtaining power profile information with low overhead |
US9551805B2 (en) * | 2011-10-13 | 2017-01-24 | Integrated Device Technology, Inc. | Apparatus, system, and method for detecting a foreign object in an inductive wireless power transfer system via coupling coefficient measurement |
US9335809B2 (en) * | 2013-03-15 | 2016-05-10 | Seagate Technology Llc | Volatile memory storing system data during low power mode operation and monitoring the voltage supplied to the memory during low power mode |
JP2014197726A (ja) * | 2013-03-29 | 2014-10-16 | 株式会社東芝 | 計測装置、情報処理装置、鍵管理装置および使用量計算システム |
US10001830B2 (en) * | 2014-06-16 | 2018-06-19 | Marvell World Trade Ltd. | Input-output device management using dynamic clock frequency |
US9514020B2 (en) * | 2014-06-23 | 2016-12-06 | Dell Products L.P. | Power profile diagnostic system |
-
2020
- 2020-12-01 US US17/109,031 patent/US11422173B2/en active Active
- 2020-12-02 CN CN202011390865.5A patent/CN113625045A/zh active Pending
- 2020-12-03 DE DE102020132082.5A patent/DE102020132082A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
US11422173B2 (en) | 2022-08-23 |
US20210349134A1 (en) | 2021-11-11 |
DE102020132082A1 (de) | 2021-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360543B2 (en) | USB Type-C subsystem power management | |
US11842202B2 (en) | Apparatus and method for dynamic selection of an optimal processor core for power-up and/or sleep modes | |
US20210240142A1 (en) | Distributed and scalable all-digital low dropout integrated voltage regulator | |
TW202206973A (zh) | 漏電流退化控制及量測 | |
US20210334187A1 (en) | Real-time power meter for optimizing processor power management | |
KR20220040376A (ko) | 프로세서 피크 전류 제어 장치 및 방법 | |
EP3945426B1 (en) | Low latency fine grain system-on-chip throttling apparatus and method on usb type-c port | |
US11336270B2 (en) | Fuse-less self-start controller | |
US11422173B2 (en) | Method and apparatus for accurate measurement of platform power | |
CN113835517A (zh) | 快速动态电容、频率、和/或电压节流装置和方法 | |
TW202211581A (zh) | 基於推理之快速充電技術 | |
US20220018901A1 (en) | Techniques to enable integrated circuit debug across low power states | |
US11500444B2 (en) | Intelligent prediction of processor idle time apparatus and method | |
US11237610B2 (en) | Handling loss of power for uninterruptible power supply efficiency | |
US11705750B2 (en) | Power negotiation sequence to improve user experience and battery life | |
US20220300051A1 (en) | Battery heat balancing apparatus and method during peak mode | |
US20240047986A1 (en) | Electrical decoupling power delivery resources to improve efficiency of a low power state | |
US20230108736A1 (en) | Techniques for identification and correction of clock duty-cycle | |
CN114008562A (zh) | 使用自适应算法的基于工作负载的动态能量性能偏好 | |
TW202226016A (zh) | 安全的裝置電力啟動設備及方法 | |
CN115514036A (zh) | 自适应突发功率和快速电池充电装置和方法 | |
CN115079809A (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 |