CN117546122A - 使用服务质量(qos)的功率预算管理 - Google Patents
使用服务质量(qos)的功率预算管理 Download PDFInfo
- Publication number
- CN117546122A CN117546122A CN202280044041.3A CN202280044041A CN117546122A CN 117546122 A CN117546122 A CN 117546122A CN 202280044041 A CN202280044041 A CN 202280044041A CN 117546122 A CN117546122 A CN 117546122A
- Authority
- CN
- China
- Prior art keywords
- application
- power
- applications
- throttling
- qos
- 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
- 238000012545 processing Methods 0.000 claims abstract description 144
- 238000000034 method Methods 0.000 claims abstract description 78
- 230000000116 mitigating effect Effects 0.000 claims abstract description 73
- 230000015654 memory Effects 0.000 claims description 43
- 230000004044 response Effects 0.000 claims description 18
- 238000004891 communication Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 22
- 238000012544 monitoring process Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000012913 prioritisation Methods 0.000 description 14
- 230000007423 decrease Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000009467 reduction Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013480 data collection Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- KJLLKLRVCJAFRY-UHFFFAOYSA-N mebutizide Chemical compound ClC1=C(S(N)(=O)=O)C=C2S(=O)(=O)NC(C(C)C(C)CC)NC2=C1 KJLLKLRVCJAFRY-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009257 reactivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007474 system interaction Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 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/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/329—Power saving characterised by the action undertaken by task scheduling
-
- 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/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/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/504—Resource capping
-
- 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)
- Software Systems (AREA)
- Power Sources (AREA)
Abstract
提供了用于管理功率预算的系统和方法。该方法包括:由在至少一个处理器上实现的功率预算管理器向一个或多个应用中的每个应用指定个体服务质量(QoS)指定,该一个或多个应用由该至少一个处理器可执行;由功率预算管理器基于个体QoS指定向一个或多个应用中的每个应用指派节流优先级;由功率预算管理器确定平台缓解阈值是否被超过;并且响应于确定平台缓解阈值被超过,由功率预算管理器基于节流优先级来节流被分配给一个或多个应用中的至少一个应用的处理功率。
Description
相关申请的交叉引用和优先权声明
本申请要求于2022年6月20日提交的题为“POWER BUDGET MANAGEMENT USINGQUALITY OF SERVICE(QOS)”的美国非临时专利申请No.17/844,626的优先权,该申请要求于2021年6月22日提交的题为“POWER BUDGET MANAGEMENT USING QUALITY OF SERVICE(QOS)”的美国临时专利申请No.63/213,392的优先权。上述专利申请的全部内容通过引用并入本文。
背景技术
现代电子设备包括为电子设备执行处理的资源,诸如中央处理单元(CPU)。在CPU的示例中,许多CPU包括多个由硅制成的处理核,这些处理核受到电子设备内的物理限制,包括尺寸、温度范围等。从处理的角度来看,CPU在有限的处理功率预算内执行前台处理和后台处理。预算用于前台和后台处理的处理功率包括:确定一次要执行的适当的核数目、执行核的正确频率以及如何针对不同工作负载适当地配置系统。有时需要节流一个或多个应用的处理功率,这可能会影响性能和用户体验。
节流
发明内容
提供本发明内容是为了以简化的形式介绍概念的选择,这些概念将在下面的具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用作确定所要求保护的主题的范围的帮助。
提供了一种用于管理计算功率预算的系统和计算机化方法。该方法包括:由在至少一个处理器上实现的功率预算管理器向一个或多个应用中的每个应用指定个体服务质量(QoS)指定,该一个或多个应用由该至少一个处理器可执行;由功率预算管理器基于个体QoS指定向一个或多个应用中的每个应用指派节流优先级;由功率预算管理器确定平台缓解阈值是否被超过;并且响应于确定平台缓解阈值被超过,由功率预算管理器基于节流优先级来节流被分配给一个或多个应用中的至少一个应用的处理功率。
附图说明
通过结合附图阅读以下详细描述将更好地理解本描述,其中:
图1是图示了根据本发明的示例的用于管理计算功率预算的系统的框图。
图2是根据本公开的示例的向应用提供QoS指定的计算机化方法;
图3是根据本公开的示例的管理中央处理单元(CPU)功率预算的计算机化方法;
图4是根据本公开的示例的计算节流分数的计算机化方法;
图5是示出根据本公开的示例的节流严重性的示例的系统图;以及
图6是用于实现本公开的示例的示例计算设备的框图。
在整个附图中,对应的附图标记指示对应的部分。在图1-图6中,系统被图示为示意图。附图可能不按比例绘制。
具体实施方式
将参考附图详细描述各种实现方式和示例。只要有可能,在整个附图中将使用相同的附图标记来指代相同或相似的部件。贯穿本公开进行的与具体示例和实现方式相关的引用仅出于说明性目的而提供,但是除非有相反指示,否则并不意味着限制所有示例。
对一个或多个计算机应用的处理功率的节流有时是必要的,因为功率预算和热限制可能导致中央处理单元(CPU)和/或图形处理单元(GPU)的性能降低。然而,处理功率的节流可能会影响性能和用户体验。例如,即使是后台工作也可能对用户很重要,并且因此不应放慢速度,因此除非对于设备完整性有必要,否则可能不希望进行广泛的节流。另一方面,在一些场景中,即使是在前台呈现的应用也可能需要节流,使得核系统交互的性能不会降低到超出最小可接受限制。因此,本公开提供了一种系统和方法,其确定整个系统保持在内的功率预算并随后基于不同的QoS指定级别来确定功率预算在CPU、GPU和神经处理单元(NPU)之间和/或在CPU、GPU、NPU中的每一者内的的最佳划分,以优化用户体验。
当前的解决方案集中于缓解,而不是在管理诸如CPU之类的计算资源的预算时考虑特定类型的工作、系统特性和/或当前环境条件。例如,一些解决方案基于平台缓解阈值(诸如临界温度或功率阈值)被超过而节流所有进程。这可能会降低用户体验,例如,通过影响当前在用户界面的前台执行的应用。一些硬件可以被编程为自动节流所有CPU频率以适应在所编程的功率和/或温度约束内。当临界温度或功率阈值被超过时,CPU的操作可以被节流,但是直到需要维持电子设备的完整性时才启动节流操作。除了影响用户体验和整体计算性能之外,这还导致计算资源的使用效率低下。
本公开的各方面提供了一种技术解决方案,通过基于当前系统特性、当前应用或进程类型和使用以及其他因素主动节流计算进程,在超过阈值(诸如临界温度或功率阈值)之前进行节流的同时,考虑工作负载的性能和/或期望的能量效率特性。这种对计算资源的智能管理提高了节流操作的效率,并整体上改善了用户体验和计算机性能。
本公开的各方面提供了通过在超过关键阈值之前主动地节流计算进程或应用来管理计算资源(诸如CPU)的功率预算的系统和方法,其中需要节流来维持电子设备的完整性。本公开标识当前执行的应用或进程的服务质量(QoS)级别,并基于指定的QoS级别在应用或进程之间进行区分,对分配给以较高QoS级别指定的应用(诸如在前台执行的那些)优先排序优于以较低QoS级别指定的那些(诸如在后台执行的那些),这在维持设备完整性和功能的同时改善了用户体验。
在一些示例中,计算资源的当前操作、工作负载的性能和/或期望的能量效率、和/或系统约束被考虑以管理功率预算。本公开的各方面提供了处理器的时钟速度的频率上限,其指示计算机线程可以运行或被授权运行的最大时钟速度。此频率上限是启用节流的机制的示例,该节流对选定的较低优先级QoS活动级别设置节流,以便控制针对其他较高优先级QoS活动级别分配的处理功率的影响。例如,频率上限可以被选择性地应用于执行低QoS级别活动的处理器核的子集以限制它们的时钟速度,而其他核可以同时执行没有频率上限或具有不同频率上限的高QoS级别活动。在一些示例中,如果实施了对应用的限制,则频率上限可以下降一定的百分比,诸如每30ms百分之十,并且如果移除对应用的限制,则频率上限可以增加一定的百分比,诸如每30ms百分之十。作为另一个非限制性示例,可以基于期望的热和能量效率特性来限制频率上限最小值,例如不低于800MHz。换句话说,由频率上限控制的限制范围提供了一种在为了能效维持最低频率的同时减少功率输出和改善热特性的手段。本公开的各方面还提供了可用于一个或多个应用的核的减少,这限制了可用于一个应用的处理功率并释放了用于其他应用的处理功率。
本公开的各方面还提供动态反馈环路,动态反馈环路连续地或周期性地监测在计算设备上正在执行的应用、进程和/或线程的功耗,并以智能、渐进的方式节流被分配给它们的处理功率,基于QoS级别对处理功率分配进行优先排序,并首先节流被分配给非优先排序应用的处理功率,以缓解对较高优先级应用和整体用户体验的影响。作为一个非限制性示例,定期读取和监测模型特定寄存器(MSR)值以确定是否已达到限制。在已达到限制的情况下,增加节流分数,并且更新后的节流分数被用于确定使用哪些节流机制以及使用到什么程度。
如本文所提及的,在计算设备上执行的应用包括进程和线程。每个应用都与特定QoS级别相关联,该级别可以被分类为高、中、低等等,以动态地描述应用在当前执行时间的性能、功率预算和/或特性。在计算设备确定需要节流的示例中,利用这些QoS级别指定以便确定用于节流资源消耗的优先排序。
图1是图示了根据本公开的示例的用于管理计算功率预算的系统的框图。提供图1中所图示的网络环境100仅用于说明。可以使用网络环境100的其他示例而不脱离本公开的范围。在一些示例中,计算功率预算包括处理单元正在利用和/或消耗的功率,处理单元包括但不限于CPU、GPU、NPU、磁盘或任何其他合适的计算资源。
网络环境100,在本文中也被称为系统,包括计算设备102、外部设备138和云服务器136。计算设备102、外部设备138和云服务器136中的每一者通信地耦合到网络140并经由网络140进行通信。计算设备102表示执行计算机可执行指令106(例如,作为应用程序、操作系统功能或两者)以实现与计算设备102相关联的操作和功能性的任何设备。在一些示例中,计算设备102包括移动计算设备或任何其他便携式设备。移动计算设备包括但不限于例如:移动电话、膝上型计算机、平板计算机、计算板、上网本、游戏设备、可穿戴设备、物联网(IoT)设备和/或便携式媒体播放器。计算设备102还可以包括不太便携的设备,诸如服务器、台式个人计算机、信息亭、IoT设备或桌面设备。另外,计算设备102可以表示一组处理单元或其他计算设备。在一些示例中,计算设备102是在云中执行的设备。
在一些示例中,计算设备102包括至少一个处理器108、包括计算机可执行指令106的存储器104、以及用户界面110。处理器108包括任何数目的处理单元,包括但不限于(多个)CPU、(多个)GPU和(多个)NPU。处理器108被编程为执行计算机可执行指令106。计算机可执行指令106由处理器108执行、由计算设备102内的多个处理器执行、或者由计算设备102外部的处理器执行。在一些示例中,处理器108被编程为执行计算机可执行指令106,诸如本文描述的附图(诸如图2-图6)中所图示的那些指令。在各种示例中,处理器108被配置为执行一个或多个传感器114和功率预算管理器142,功率预算管理器142包括应用位置确定模块118、功率使用模块120、阈值监测模块122、节流模块124、优先排序模块126和能量估计引擎128,如下文更详细地描述的。换句话说,(多个)传感器114和功率预算管理器142在处理器108上被实现和/或由处理器108实现。
在一些实现方式中,处理器108是多核处理器。多核处理器包括两个或更多处理单元,诸如核109,其通过读取和执行指令106来执行处理器108的功能。核109可以由硅组成。在一些实现方式中,核109中的一个或多个核自动监测功耗水平并自动检测何时达到功耗限制。在一些实现方式中,特定核109可以实现特定应用编程接口(API),诸如特定于核109的原始制造商的API,以便内核107识别信号,诸如已达到核109的功耗限制的信号。在一些示例中,每个核109可以被分类到效率等级,使得当确定何时何地调度前台和后台线程时,可以基于它们的效率等级在核109之间分配用于处理功率的预算。
存储器104包括与计算设备102相关联或可由计算设备102访问的任意数目的介质。这些示例中的存储器104在计算设备102的内部,如图1中所图示。在其他示例中,存储器104在计算设备102外部或者包括计算设备102内部和外部的存储器组件。存储器104存储数据,诸如计算机可执行指令106、至少一个内核107、以及一个或多个应用130。内核107可以被包括在计算机可执行指令106中并且在计算设备102的操作系统上被实现。在一些示例中,内核107控制计算设备的一个或多个软件和硬件组件,包括但不限于下面更详细描述的功率预算管理器142。例如,内核107识别出新接收到的用于热和功率节流的信号,并且使用这些接收到的信号来动态地节流由计算机可执行指令106正在执行的应用和服务。然而,该示例不应被解释为限制性的。在一些实现方式中,一个或多个核109可以自主控制它们的CPU频率。例如,核109可以经由核109提供者针对频率选择的算法来解释已编程的能量性能偏好(EPP)控制。
当由处理器108执行时,应用130操作以在计算设备102上执行各种功能。应用130可以与对应的应用或服务(诸如可经由网络140访问的web服务)进行通信。在示例中,应用130表示下载的客户端应用,其对应于在云(诸如云服务器136)中执行的服务器端服务。
用户界面110包括用于向用户显示数据以及从用户接收数据的图形卡。用户界面110还可以包括用于操作图形卡的计算机可执行指令,例如驱动程序。此外,用户界面110可以包括显示器,例如触摸屏显示器或自然用户界面,和/或用于操作显示器的计算机可执行指令,例如驱动程序。在一些示例中,用户界面110的触摸屏显示器使得用户能够选择进行利用以用于执行跨设备通信的网络协议,如下文更详细地描述的。用户界面110还可以包括以下中的一个或多个以向用户提供数据或从用户接收数据:扬声器、声卡、相机、麦克风、振动电机、一个或多个加速计、品牌通信模块、全球定位系统(GPS)硬件和感光光传感器。在非限制性示例中,用户通过以一种或多种方式移动计算设备102来输入命令或操纵数据。
在一些示例中,用户界面110显示一个或多个应用130,当显示应用130时,这些应用130在前台执行。例如,在用户界面110上处于焦点且可见地显示的Web浏览器应用在前台执行,同时在用户界面110上可见。当在前台处于焦点且可见地显示时,Web浏览器应用可以被指定为高QoS应用,如下文更详细地描述的。当Web浏览器应用从前台的焦点移出时,例如通过最小化、隐藏在其他窗口后面以使得其不再完全可见或者以其他方式从正被显示在用户界面110上移出,Web浏览器可以被重新分类为后台应用并给予较低QoS指定。例如,可以在前台打开诸如电子邮件(email)应用之类的新应用,从而将Web浏览器应用移到后台。当在后台执行时,Web浏览器应用可以被指定为低QoS应用,如下文更详细地描述的。当Web浏览器应用被最小化或移到后台时,Web浏览器使用较少的CPU资源,同时仍可能在后台工作以处理由用户在应用处于前台或在预处理活动时启动的活动,以改善当应用从后台恢复到前台时的未来的用户体验。应当理解,本文描述的Web浏览器应用和电子邮件应用的示例仅用于说明而不应被解释为限制。在不脱离本公开的范围的情况下,可以使用在计算设备102上可执行的任何应用或进程。
如本文所提及的,每个应用130被指定特定QoS级别144。特定应用的QoS级别144指定可以随着计算设备102以不同的方式被利用而改变。例如,在用户界面110的前台上处于焦点的应用130可以被指定具有高QoS级别146,但是当该应用130从前台的焦点移出或以其他方式移到后台时,应用130可以被改变为低QoS级别150。
尽管在本文中出于示例性目的描述了低QoS150、中等QoS148和高QoS146级别,但是本公开设想了各种不同的QoS级别并且不限于本文的描述。高QoS级别146指定对应于高优先级应用130,诸如在用户界面110的前台中处于焦点或可见的(多个)应用130。低QoS级别150指定对应于较低优先级应用130,诸如正在用户界面110的后台执行和/或在用户界面110上未处于焦点或不可见的(多个)应用130。中等QoS级别148指定对应于具有比具有低QoS级别150指定的应用更高的优先级、但具有比具有高QoS级别146指定的应用更低的优先级的(多个)应用130。例如,高QoS级别146应用可以在前台直接处于焦点并且当前接收用户交互,而中等QoS级别148应用可能正在在前台至少部分可见或在前台完全可见执行,但不处于焦点,而低QoS级别150应用可能在后台正在执行,并且在前台根本不可见。
应当理解,QoS级别144指定不限于高QoS146、低QoS150和中等QoS级别148指定。例如,其他QoS级别144指定可以包括eco QoS级别152和多媒体QoS级别154。eco QoS152是比低QoS级别150还要低的指定,并且可以是在性能和功率允许方面最低的QoS级别指定。在一些示例中,eco QoS级别152可以被应用于应用以提供能效和功耗的最大减少。指派给ecoQoS级别152的应用可以包括负责下载和安装软件更新的服务、Web浏览器中的后台选项卡以及负责备份文件的服务。
在另一示例中,多媒体QoS级别154是可以被应用于批处理缓冲的多媒体内容的特定线程的指定。换言之,多媒体QoS级别154可以被指派给一次对许多内容帧进行解码/编码的(多个)应用130。应当理解,QoS级别的描述仅作为示例而被提供并且不应被解释为限制。在不脱离本公开的范围的情况下,计算设备102可以包括比本文描述的那些更多或更少的QoS级别144。
计算设备102还包括通信接口设备112。通信接口设备112包括网络接口卡和/或用于操作网络接口卡的计算机可执行指令,诸如驱动程序。计算设备102和其他设备(诸如但不限于云服务器136)之间的通信可以使用任何协议或机制通过任何有线或无线连接来发生。在一些示例中,通信接口设备112可使用短程通信技术来操作,诸如通过使用近场通信(NFC)标签。
计算设备102还包括用于存储数据(诸如但不限于数据134)的数据存储设备132。在一些非限制性示例中,数据存储设备132包括独立磁盘冗余阵列(RAID)阵列。在一些示例中,数据134是要使用可用网络协议经由跨设备通信传送的数据。例如,数据134可以是与要经由跨设备通信传送的一个或多个应用130相对应的应用数据,其包括数据的大小、数据的类型、应用类型、设备类型等等。
在该示例中,数据存储设备132被包括在计算设备102内、附接到计算设备102、插入到计算设备102中、或者以其他方式与计算设备102相关联。在其它示例中,数据存储设备132包括由计算设备102经由网络140访问的远程数据存储,诸如远程数据存储设备、远程数据中心中的数据存储或云存储。
计算设备102包括被配置为捕获数据的一个或多个传感器114。在一些示例中,所捕获的数据是要经由跨设备通信传送到另一设备的数据134。例如,所捕获的数据134可以是图像数据、视频数据、文本数据、应用数据等。在一些示例中,被传送到另一设备的数据134在没有用户参与的情况下被传送。例如,在跨设备通信中涉及的一个或多个设备是IoT设备的情况下,IoT设备可以基于在IoT设备的范围内、被连接到同一无线网络(诸如WiFiTM网络)等来执行到外部设备(诸如外部设备138)的跨设备通信。
在一些示例中,一个或多个传感器114实时或近实时地收集数据。如本文所提及的,实时或近实时的数据收集是指在没有明显延迟的情况下的数据收集,使得由一个或多个传感器114收集的数据被立即收集并发送以用于分析。
在一些示例中,计算设备102包括一个或多个风扇116。一个或多个风扇116包括一个或多个叶片,叶片进行旋转以冷却计算设备102的一个或多个元件。例如,基于一个或多个传感器114确定计算设备102的温度高于阈值温度,激活一个或多个风扇116以帮助冷却计算设备102。因此,在一些示例中,可以在不节流一个或多个应用130的CPU处理功率的情况下维持和/或管理计算设备102的温度。
功率预算管理器142在内核107上被实现并且执行一个或多个进程以便管理计算设备102的(多个)功率预算,诸如CPU功率预算、GPU功率预算、NPU功率预算、和/或前述的任意组合。在一些示例中,应用位置确定模块118、功率使用模块120、阈值监测模块122、节流模块124、优先排序模块126和能量估计引擎128中的每一者均由功率预算管理器142实现。
应用位置确定模块118确定正由处理器108执行的每个应用130的当前位置。如本文中所使用的,(多个)应用130是被设计为在计算设备102上执行特定任务的程序。例如,(多个)应用130可以包括但不限于Web浏览器应用、消息传送应用、导航/地图应用、文字处理应用、游戏应用、应用商店、包括在生产力应用套件中的应用诸如日历应用、即时消息传送应用、文档存储应用、视频和/或音频呼叫应用等等,以及用于特定计算设备102的专用应用。例如,应用的位置可以指的是应用当前正在执行的位置,诸如在前台或后台中。在其他示例中,位置可以指的是应用在用户界面处是否完全处于焦点或可见、在用户界面处部分处于焦点或者未处于焦点或可见。例如,在前台正在执行的应用130是在执行时在用户界面110上处于焦点并且可见的应用。在前台处于焦点的应用130也可以被指定为高QoS应用以便相对于被指定为较低QoS级别的应用130以增加的功能级别呈现给用户,并且因此可以利用更高百分比的CPU处理功率。在一些示例中,功能级别是基于计算设备102的性能度量来确定的。
作为另一示例,在后台正在执行的应用130是在执行时在用户界面110上未被呈现的应用(例如,被最小化或被另一应用隐藏而不可见,执行后台刷新以搜索新数据,或者是不具有用户界面110面向元素的操作系统功能)。在后台正在执行的应用130可以被指定为低QoS应用,并且可以被分配比在前台被呈现给用户的应用更低百分比的CPU处理功率。
应用位置确定模块118针对由计算设备102正在执行的每个应用130实时地标识特定应用130是在前台还是在后台正在执行。如本文所提及的,实时可以指的是针对每个应用130的分数的频繁重新计算,诸如每30ms或某个其他可配置时间间隔重新计算分数,以确定当前应用状态并使得能够将足够的处理功率适当地分配给高QoS应用。在一些示例中,分数可以是节流分数,该节流分数被用来确定使用哪些节流机制以及使用到什么程度。下面在图4的描述中更详细地描述迭代地计算节流分数的示例方法。
在一些示例中,(多个)应用130可以相对快速地从前台转变到后台或者从后台转变到前台。例如,用户可以选择特定应用130并且使选定应用在前台成为焦点,这可以将先前处于焦点的应用部分地或完全地转变出焦点到后台中。在另一示例中,用户可以最小化应用130以立即将应用130置于后台中。在又一示例中,应用130可以在没有接收到用户交互的情况下以编程方式最小化或最大化其窗口,这将导致应用在后台和前台之间转变。因此,取决于与应用130的用户交互,应用130可以从高QoS转变到中或低QoS,或者从低或中等QoS转变到高QoS,或者从中等QoS转变到低或高QoS。在一些示例中,应用位置确定模块118实时或近实时地将QoS级别144指派给每个正在执行的应用130,并且生成或维持标识当前正在执行的应用130及其当前指派的状态和QoS级别指定的动态表119。
功率使用模块120确定由每个应用130当前分配或利用的处理功率的量。处理功率的量可以指的是CPU处理功率、GPU处理功率、NPU处理功率等中的任何一个。在一些示例中,基于从应用130所属的群组的QoS指定(诸如高QoS、中等QoS或低QoS)导出的已分配的处理功率来确定当前分配给应用130的处理功率。在其他示例中,通过测量应用130正在积极利用的个体处理功率来单独地确定应用130正在利用的处理功率。例如,处理功率的分配和利用也可以由功率使用模块120组合考虑。
在一些示例中,功率使用模块120还确定计算设备102作为整体的功率使用和可用性。例如,功率使用模块120确定计算设备102是否插入到功率源或者计算设备102是否基于从电池供应的功率来进行操作。下面更详细地描述的节流模块124可以至少部分地基于通过功率使用模块120确定的计算设备102被插入到电池功率中或依靠电池功率进行操作来确定要实施的处理功率节流的速率。在一些示例中,当计算设备102依靠电池功率进行操作时,节流模块124比当计算设备102被插入到功率源中时更快地节流处理功率,因为在没有外部电源的情况下,计算设备102可能需要节省更多的处理功率。换句话说,节流模块124可以在计算设备102依靠电池功率进行操作时比在不依靠电池功率进行操作时更积极地节流处理功率,而较少关注被节流的特定进程。
阈值监测模块122监测计算设备102的一个或多个阈值。该一个或多个阈值可以包括但不限于计算设备102的温度阈值、功耗阈值、一个或多个风扇116的噪声级别、和/或在用户界面110上呈现的应用130的应用性能度量。应用性能度量可以从评估其自己的性能标准的相应应用130获得,或者从外部可观察的性能度量(诸如应用130的帧速率)获得。在一些示例中,一个或多个阈值被细分为多个子阈值,以便主动地管理资源消耗。例如,温度阈值可以包括第一子阈值和第二子阈值。第一子阈值可以指示这样一个温度,在该温度时建议节流以便有效地或主动地管理计算设备102的温度,并且第二子阈值可以是指示为了维持计算设备102的结构完整性而不应该被超过的温度的临界阈值。本公开可以设想除了第一和第二子阈值之外的任何数目的中间子阈值。
在一些示例中,一个或多个传感器114收集由阈值监测模块122监测的数据134。例如,一个或多个传感器114可以包括测量计算设备102的温度的温度计。阈值监测模块122监测温度计的读数以确定第一阈值和/或第二阈值何时被超过或接近被超过。在另一示例中,一个或多个传感器114可以包括测量一个或多个风扇116的噪声输出的分贝计或测量一个或多个风扇116的每分钟转数(RPM)的加速计。如上所述,一个或多个风扇116可以被用来维持和/或管理计算设备102的温度。然而,在一些示例中,一个或多个风扇116单独可能不足以有效地管理计算设备102的温度。在这些示例中,阈值监测模块122确定由一个或多个风扇116输出的噪声级别已达到或接近第一噪声级别阈值和第二噪声级别阈值之一。
在另一示例中,一个或多个传感器114感测电池电平和/或电池消耗的速率。平台缓解阈值可以包括电池消耗的速度阈值,并且当超过该阈值时,如本文所述启动节流。在又一示例中,一个或多个传感器114监测硬件信号。例如,传感器114可以确定用户界面110当前没有呈现任何内容,指示用户界面110被关闭,或者在计算设备102是膝上型计算机的情况下盖子已经被关闭。
在一些示例中,阈值监测模块122通过以规则的间隔(诸如每30ms)执行处理器功率管理(PPM)检查来监测一个或多个平台缓解阈值。在每次PPM检查,阈值监测模块122读取更新后的模型特定寄存器(MSR)值以确定是否已经超过一个或多个功率限制。如本文所述,功率限制可以是运行时间平均功率限制(RAPL)或PL1(其测量热限制)、通过风扇116的每分钟转数(RPM)测量的主动冷却限制、和/或测量各种QoS级别144应用的功率使用的功率使用限制。在已经达到或超过PL1的情况下,阈值监测模块122添加节流分数。节流分数被用来确定使用哪些节流机制以及使用到什么程度,如下面关于图5更详细地描述的。在未达到PL1的情况下,降低节流分数。因此,节流分数被用来确定将用于执行应用的功率减少多少。
节流模块124部分地基于由优先排序模块126确定的优先排序和/或部分地基于阈值监测模块122确定一个或多个阈值已经被超过来节流被分配给一个或多个应用130的处理功率,如本文所描述的。节流模块124可以通过本文更详细地描述的一种或多种方法来节流被分配给一个或多个应用130的处理功率。例如,节流模块124可以通过实施能量性能偏好(EPP)控制、减少应用130可用的核109的数目中、以及实施分配给应用130的最大CPU频率上限中的一个或多个来节流一个或多个应用130的处理功率,如下面在图5的描述中更详细地描述的。
在一些示例中,节流模块124节流被分配给被确定为低QoS并且被优先排序模块126指派高优先级的应用130的处理功率。换言之,在当时是最不具有价值的活动的低QoS级别应用130被节流,以优先排序较高QoS级别应用130的活动。在另一示例中,节流模块124节流被分配给被确定为使用最多CPU处理功率的应用130的处理功率。因此,通过节流被分配给消耗最多CPU处理功率的应用130的处理功率,可以在尽可能短的时间内实现最大的节流影响。例如,在计算设备102检测到相对较少的低QoS级别活动但是检测到显著的中等QoS级别活动的情况下,对分配给低QoS应用130的处理功率的节流对于减少功耗可能是无效的或者操作缓慢的。然而,在该示例中,在存在显著的中等QoS级别活动的情况下,首先节流被分配给中等QoS应用130的处理功率可以更快地降低功耗。在一些示例中,节流模块124节流被分配给后台应用或低QoS级别应用的处理功率的一些或全部,并且不节流被分配给前台应用或高QoS级别应用的处理功率,除非指示分配给前台应用和后台应用的处理功率二者都应受到节流的临界阈值被超过。
在一些实现方式中,节流模块124连续地节流被分配给被指派了低QoS级别150的一个或多个应用130的处理功率。在其他实现方式中,节流模块124基于阈值监测模块122确定计算设备102的一个或多个阈值被超过来节流被分配给一个或多个应用130的处理功率。
节流模块124可以根据变化的积极性级别来节流被分配给一个或多个应用130的处理功率,积极性级别至少部分地基于由阈值监测模块122标识的MSR值。在一些实现方式中,节流模块124基于四个节流积极性级别之一来节流被分配给一个或多个应用130的处理功率。然而,在不脱离本公开的范围的情况下,多于或少于四个级别是可能的。在一些实现方式中,节流模块124基于每个更新后的MSR值来调整节流积极性。例如,节流模块124可以基于MSR值指示需要额外节流而将节流升级到较高节流级别,或者基于MSR值指示可以减少节流而将节流降低到较低节流级别。
例如,第一积极性级别是最保守的节流级别并且包括对分配给一个或多个应用130的处理功率的最低节流量。例如,第一积极性级别可以包括例如节流使得应用性能将不会降低超过600%,风扇116将不会以高于8,000RPM的速率旋转,并且计算设备102的电池的消耗率将不超过20W。第二积极性级别可以包括比第一级别更积极的节流,例如,使得应用性能将不会降低超过400%,风扇116将不会以高于7,000RPM的速率旋转,并且电池的消耗率将不超过15W。第三积极性级别可以包括比第一级别和第二级别中的每一者更积极的节流,例如,使得应用性能将不会下降超过50%,风扇116将不会以高于5000RPM的速率旋转,并且计算设备102的电池的消耗率将不超过10W。第四积极性级别可以是最积极的节流级别。例如,第四积极性级别可以仅在极端场景下被实现并且仅用于总体上标识和纠正QoS系统中的问题。在第四积极性级别中,低QoS150应用和eco QoS152应用被限制为最低频率和仅一个核109。
如本文所述,优先排序模块126基于由应用位置确定模块118所指派的QoS级别指定144对一个或多个应用130进行优先排序。由优先排序模块126提供的优先排序由节流模块124使用以确定对应用处理功率进行节流的顺序。在一些示例中,多个应用130可以被指定具有高QoS146指定。在这些示例中,优先排序模块126基于处理功率对于应用性能或用户体验的已知重要性级别来对高QoS146应用130进行优先排序。这些已知的重要性级别可以被包括在存储在存储器104中的指令106中,或者可以从一段时间内的试探法推断出来,诸如在对应用130或其子集进行优先排序的整个生命周期中(例如,特定的最近时间段)。
应当理解,如本文所述,节流优先级是应用优先级的倒数。例如,在后台正在执行并被指派了低QoS指定的应用将具有低应用优先级,因为该应用在后台正在执行,但是具有高节流优先级,因为低QoS指定指示该应用将是首先被节流的其中之一。相反,在前台正在执行并被指派了高QoS指定的应用将具有高应用优先级,因为该应用在前台正在执行,但是具有低节流优先级,因为高QoS指定指示该应用将是最后被节流的其中之一。
如本文所述,能量估计引擎128分析参数,包括任务在CPU上执行需要多长时间、特定应用130在多少个CPU核上运行、特定应用130以什么频率运行以及该核的性能如何。基于该分析,能量估计引擎128确定由应用130消耗的大致功率,然后确定对每个QoS级别的工作进行多少节流。在一些示例中,直接测量功耗,并且该测量被用来将测量的功耗分给应用130。因此,能量估计引擎128确定并测量特定应用130在一些实例中可以如何利用不成比例的处理功率量。基于确定特定应用使用不成比例的处理功率量,优先排序模块126可以优先排序应用130以进行节流,节流模块124可以节流特定应用130,等等。
应当理解,虽然本文提供的示例解决了CPU功率预算,但是这些示例不应被解释为限制。在不脱离本公开的范围的情况下,功率预算的各种示例可以如本文所述被分配和/或节流,包括但不限于CPU、GPU、NPU、磁盘或任何其他合适的计算资源功率预算。
图2是根据本公开的示例的向应用提供QoS指定的计算机化方法。图2的计算机化方法仅用于说明而不应被解释为限制。在不脱离本公开的范围的情况下可以使用计算机化方法的各种示例。在一些示例中,方法200由计算设备102和/或计算设备600的功率预算管理器142来实现。
方法200开始于在操作201处标识正在执行的应用130。应用130的各种示例是可能的。在一些实现方式中,应用130是在用户界面110上执行和呈现的面向前端的应用,用户可以在用户界面110上与应用交互。在其他实现方式中,应用130是在计算设备102的后台操作的后端应用。应用130由处理器108的一个或多个核109执行。
在操作203处,应用位置确定模块118确定正在执行的应用130是否在用户界面110的前台上可见并且处于焦点。可见并且处于焦点或者最显著地显示在用户界面110上的在前台上正在执行的应用130可以被认为比当前正在执行但在计算设备102的后台中的另一应用对于用户体验更重要。在一些示例中,处于焦点可以指的是当前用户与应用的交互,其中一个或多个应用在用户界面上可见或部分可见,但当前只有一个应用正在接收用户交互,并且因此相对于用户体验而言是处于焦点。因此,分配给当前正在执行的应用的处理功率被优先排序。当在用户界面110的前台正在执行的应用130被确定为可见并且处于焦点时,应用位置确定模块118在操作205处将应用130指定为高QoS146并将该指定存储在表119中。
当该过程确定当前正在执行的应用130在用户界面110的前台上不可见并且未处于焦点时,应用位置确定模块118在操作207处确定正在执行的应用130在用户界面110的前台上是可见的还是部分可见的。例如,正在执行的应用130可以被呈现在用户界面110上,但是与第二应用共享用户界面110上的空间。在第二应用正在直接与之交互并且处于焦点的情况下,正在执行的应用130即使在用户界面上可见或部分可见,也可以被认为未处于焦点。在应用位置确定模块118确定正在执行的应用130在用户界面110的前台上可见或部分可见但未处于焦点的情况下,应用位置确定模块118在操作209处将正在执行的应用130指定为中等QoS148并将该指定存储在表119中。如本文所述,中等QoS148是比高QoS146更低的优先级。
在该过程确定正在执行的应用130不可见或部分可见并且在用户界面110的前台上未处于焦点的情况下,应用位置确定模块118在操作211处将正在执行的应用130指定为低QoS150并将该指定存储在表119中。如本文所述,低QoS150是比中等QoS148更低的优先级。
应当理解,对应用130的QoS级别144的指定是动态的。换句话说,应用130的QoS级别144指定可以基于应用130的状态改变而改变。例如,被指定为高QoS146的应用130可以基于应用130变得不再处于焦点但仍然在用户界面110上而被重新指定为中等QoS148,或者基于该应用130被从用户界面110移除但继续在后台执行而被重新指定为低QoS150。
因此,在操作213中,应用位置确定模块118监测当前正在执行的应用的状态的改变,并且可以在检测到改变时和/或以周期性的时间间隔迭代地返回到操作201以更新关于当前正在执行的应用的状态检查。状态改变可以由用户交互而发生,用户交互可以包括例如对应于正在执行的应用130在用户界面110的前台中打开新窗口。在该示例中,因为正在执行的应用130的状态现在已经改变为在用户界面110的前台上可见并且处于焦点,所以该过程在操作205处将正在执行的应用130重新指定为高QoS146。
应当理解,可以针对不同的应用130并行地执行过程200。例如,在操作201中可以将不止一个应用130标识为当前正在执行。此外,可以连续地或周期性地监测具有指定QoS级别144的正在执行的应用130,以便确保所指定的QoS级别144指定是正确的。例如,功率使用模块120可以主动地监测特定的正在执行的应用130的功耗,其QoS级别144由应用位置确定模块118指定。
图3是根据本公开的示例的管理CPU功率预算的计算机化方法。图3的计算机化方法仅用于说明而不应被解释为限制。在不脱离本公开的范围的情况下可以使用计算机化方法的各种示例。在一些示例中,方法300由计算设备102和/或计算设备600来实现。
方法300开始于在操作301处由功率预算管理器142监测一个或多个平台缓解阈值。在一些实现方式中,例如,一个或多个平台缓解阈值可以各自包括多个子阈值,诸如第一子阈值级别和第二子阈值级别。在该示例中,第一子阈值级别是建议节流以主动缓解资源消耗的阈值,并且第二子阈值级别高于第一阈值级别并且是需要节流以便维持计算设备102的结构完整性的阈值。在一些示例中,监测平台缓解阈值包括执行周期性PPM检查以迭代地标识更新后的MSR值。一个或多个平台缓解阈值的示例可以包括但不限于温度阈值、功耗阈值、噪声级别阈值和/或在用户界面110上呈现的应用130的应用性能度量。在一个特定示例中,噪声级别阈值可以由计算设备102当前正在操作的操作模式来确定。例如,计算设备102可以包括静音模式,其中风扇116噪声不超过噪声级别阈值。静音模式可以由操作计算设备102的用户手动地进入或者基于当前正在执行的一个或多个应用130而动态地进入。例如,在正在执行的应用130是视频电话会议应用的情况下,功率预算管理器142可以标识阈值以便应用130不拾取计算设备102的麦克风上的风扇噪声,否则这可能影响用户经验。
在操作303中,功率预算管理器142确定是否一个或多个所监测的平台缓解阈值被超过。在一些实现方式中,确定一个或多个监测的平台缓解阈值是否被超过包括:将所标识的MSR值的最近迭代与对应于平台缓解阈值的值进行比较。在MSR值大于平台缓解阈值的情况下,平台缓解阈值被超过,并且在MSR值小于平台缓解阈值的情况下,平台缓解阈值未被超过。
在一些实现方式中,功率预算管理器142基于从(多个)传感器114接收的系统数据134和/或由内核107接收的信号来确定一个或多个平台缓解阈值被超过。例如,(多个)传感器114收集关于计算设备102的温度、计算设备102的功耗水平、风扇116的噪声级别(诸如以分贝(dB)为单位)以及计算设备102的应用性能水平中的一个或多个的系统数据134。功率预算管理器142将所收集的系统数据134与一个或多个平台缓解阈值进行比较,以确定平台缓解阈值或子阈值是否被超过。在所收集的系统数据134指示处于或高于平台缓解阈值或子阈值中的一个或多个的特定水平的示例中,功率预算管理器142确定相应的平台缓解阈值已经被超过,并且进行到操作305。在其他示例中,在所收集的系统数据134指示低于平台缓解阈值或子阈值中的一个或多个的特定水平的情况下,处理器108确定相应的平台缓解阈值尚未被超过,并且返回到操作301并继续监测一个或多个平台缓解阈值。
在操作305处,功率预算管理器142标识当前正在执行的一个或多个应用130,并在操作307处确定针对所标识的一个或多个应用130中的每个应用的当前QoS指定。在一些实现方式中,当前QoS指定被存储在由功率预算管理器142的应用位置确定模块118生成和维护的动态表119中。
在一些实现方式中,确定用于一个或多个应用的当前QoS级别指定包括:在下一状态检查之前的最近间隔中,从表119中标识先前指派的指定,例如根据图2中的过程200所指定的。在其他实现方式中,确定当前QoS级别指定包括使用图2中所图示的方法200的实时确定。
在操作309处,功率预算管理器142的节流模块124基于QoS级别指定选择当前正在执行的一个或多个应用中的至少一个应用来进行节流。在一些实现方式中,节流模块124节流被分配给具有低QoS指定的每个应用的处理功率。在另一实现方式中,计算设备102标识正在使用最大处理功率量的特定应用并且节流该特定应用的处理功率以便最大化节流的影响。在又一实现方式中,优先排序模块126基于所使用的处理功率量和应用130的QoS指定的组合来生成应用130的优先级排序,针对该优先级排序来对处理功率进行节流。
在操作311处,节流模块124节流被分配给一个或多个应用中所选择的至少一个应用的处理功率。在一些示例中,基于QoS级别指定对节流进行优先排序,其中被指派最高节流优先级的一个或多个应用是具有低QoS指定的应用。在一些实现方式中,节流特定应用的处理功率包括:限制特定应用可用的处理功率或其他计算资源的量。通过限制特定应用可用的处理功率或其他计算资源的量,可以将处理功率和/或计算资源重新分发给具有较低节流优先级的一个或多个应用(即,高QoS级别应用)。例如,在分配给低QoS应用的处理功率被节流的情况下,可以将该处理功率重新分发给一个或多个高QoS应用。这维持并且在一些实例中增加了高QoS应用可用的处理功率,从而维持并且在一些实例中改善了用户体验,同时仍主动和/或动态地解决平台缓解阈值。在其他实现方式中,不重新分发处理功率。例如,在平台缓解阈值被超过的情况下,功率预算管理器根据过程300来节流处理功率以减少一段时间的计算资源的总体使用。
在一些示例中,节流模块124可以通过实施一种或多种EPP控制以减少一个或多个应用130可用的核109的数目、和/或对分配给一个或多个应用130的最大CPU频率实施频率上限来节流被分配给一个或多个应用130的处理功率。关于图5的描述更详细地描述了EPP控制503、减少应用130可用的核109的数目、以及对CPU频率的频率限制507的最大上限。
在操作313处,阈值监测模块122确定所监测的一个或多个平台缓解阈值是否被缓解,即,在节流操作之后接收到的系统数据或信号是否仍然反映在节流之前先前确定的相同水平。例如,即使在节流一个或多个应用130的处理功率之后所监测的一个或多个平台缓解阈值仍然被超过的情况下,可能需要额外的节流,从而使一个或多个传感器114检测到的水平低于正在采取主动缓解措施的平台缓解阈值或子阈值。在节流之后所监测的一个或多个平台缓解阈值或子阈值不再被超过的情况下,过程返回到操作301。
在一些实现方式中,确定是否所监测的一个或多个平台缓解阈值仍然被超过包括:分析从一个或多个传感器114收集的更新后的数据134并且将更新后的收集的数据134与平台缓解阈值进行比较。例如,在平台缓解阈值是第一温度子阈值的情况下,从传感器114中的一个或多个传感器收集温度数据以确定计算设备102的当前温度。在更新后的收集的温度数据小于第一温度子阈值的情况下(即,设备温度已经基于对分配给一个或多个应用130的处理功率进行节流而降低)时,阈值监测模块122确定平台缓解阈值不再被超过,并且方法300返回到操作301并继续监测一个或多个平台缓解阈值。当更新后的收集的温度数据仍然处于或高于平台缓解阈值时(即,基于对分配给一个或多个应用130的处理功率进行节流,设备温度没有降低,或者没有充分降低),功率预算管理器142确定平台缓解阈值仍然被超过,然后返回到操作309以确定所分配的处理功率将被节流的下一个应用130,以便平台缓解阈值被缓解或不再被超过。
因此,本公开的各种示例提供动态反馈环路,动态反馈环路实时地提供关于计算设备102的数据134的反馈,使得能够基于QoS级别指定将足够的处理功率适当地分配给最高优先级应用同时在必要时对分配给较低优先级应用的处理功率进行节流。如上所述,实时可以指的是频繁地重新计算每个应用130的总分,诸如每30ms重新计算总分,以使得能够将足够的处理功率适当地分配给高QoS应用。因此,动态反馈环路使得能够将足够的处理功率分配给最高优先级应用130,同时对分配给较低优先级应用130的处理功率进行节流,这增强了计算设备102的用户体验。在一些示例中,可以对在后台正在执行的QoS应用进行节流,同时维持在前台正在执行的高QoS应用的处理功率,从而改善在利用计算设备102时的用户体验。
如本文所述,节流分数可以被计算并被用来确定是否需要节流以及节流到什么程度(如果需要)。例如,图4是根据本公开的示例的计算节流分数的计算机化方法。图4的计算机化方法400仅被提供用于说明并且不应被解释为限制。在不脱离本公开的范围的情况下可以使用计算机化方法400的其他示例。在一些示例中,计算机化方法400由计算设备102和/或计算设备600来实现。在一些实现方式中,计算机化方法400以规则的间隔(诸如每30ms或任何其他可配置间隔)周期性地迭代。
计算机化方法400开始于在操作401中生成节流分数。随着处理器108执行计算设备102的一个或多个进程,节流分数被迭代地生成。例如,可以在计算设备102被开启时生成初始节流分数,并且可以在生成初始节流分数之后以规则的间隔生成迭代节流分数。节流分数量化了针对特定应用130要节流的处理功率量。例如,功率预算管理器142可以通过基于所计算出的节流分数而限制被允许的核的数目和/或实施CPU频率的最大上限来确定何时调谐EPP控制以及调谐到什么程度,如下面在图5的描述中更详细地描述的。换言之,节流分数可以被用来确定何时减少后台应用130、在用户界面110上处于焦点的前台应用130以及在用户界面110未处于焦点或部分处于焦点的前台应用130中的一个或多个的处理功率以及减少到什么程度。
在操作403中,在下一个间隔,功率预算管理器142通过执行处理器功率管理(PPM)检查来标识模型特定寄存器(MSR)值。在一些实现方式中,用于下一次PPM检查的每个间隔是30ms。然而,该间隔可以长于或短于30ms。MSR值包括跟踪程序执行、监测性能或切换各种CPU特征的各种值。在执行每个PPM检查时,评估目标未被满足的时间的长度(即,功率预算管理器142已经超过温度或功率阈值多长时间)以确定问题的普遍性。在一些实现方式中,问题的严重性还通过评估来自应用130的性能度量来测量对前台、高QoS应用的影响来直接评估,或者通过评估高QoS应用130的CPU频率来间接评估。
在操作405中,基于所标识的MSR值,功率预算管理器142确定是否已经达到特定功率限制,并且基于该确定和所标识的MSR值来调整所生成的节流分数。在已经达到功率限制的情况下,方法400进行到操作407并且功率预算管理器142增加节流分数。在尚未达到功率限制的情况下,方法400进行到操作409并且功率预算管理器142降低节流分数。
在一些实现方式中,当确定增加或减少节流分数时,功率预算管理器142确定分别增加或减少多少节流分数或增加或减少到什么程度。功率预算管理器142可以基于步长评估来确定将节流分数增加或减少到什么程度。步长可以基于时间。例如,步长可以是处理功率未能满足阈值或目标多长时间的度量。在另一示例中,步长是当前处理功率的量距离阈值或目标有多远的度量。因此,如果计算设备102在延长的时间段内未能满足目标或者距离目标有较大余量,则步长较大并且节流分数可以更快速地增加,从而产生如下面在图5的描述中更详细地描述的更积极的响应。在又一示例中,用于增加或减少分数的步长可以不同。换言之,可以快速增加节流分数以快速反应,但是在减小节流分数时具有较小的步长以更加逐渐地减小节流响应。
在操作411中,预算管理器142基于在操作407或409中更新的节流分数来确定对一个或多个应用130的处理功率进行节流的方法。例如,如下文更详细地描述的,预算管理器142可以更新被允许的QoS核505和频率507中的一个或多个,以便节流被分配给一个或多个应用130的处理功率。
在操作413中,功率预算管理器142通过下面在图4的描述中描述的一种或多种方法来节流在操作411中确定的分配给一个或多个应用130的处理功率。在一些实现方式中,功率预算管理器142针对所需的节流的积极性而自动调整处理功率的节流。换句话说,功率预算管理器142确定如何快速且积极地缩减或降低处理功率。例如,功率预算管理器142可以包括自动节流机制作为故障保护以避免损害CPU的结构完整性。在对分配给一个或多个应用130的处理功率进行节流之后,计算机化方法400在下一个间隔返回到操作403以进行PPM检查并标识更新后的MSR值。因此,本公开的各方面认识到,如果CPU已经被自动节流,则本文描述的节流过程也将更积极地节流在后台中标识的附加问题。
如本文所述,实施不同量的节流严重性以更精确地节流被分配给一个或多个应用130的处理功率。例如,为了在与用户界面110交互时最大化用户体验,在节流的每个实例中可能不需要对一个或多个应用130的处理功率进行最大节流或者可能是不期望的。在这些实现方式中,功率预算管理器142可以实现逐渐增加或减少节流的严重性的阶梯系统。
例如,图5是图示了根据本公开的示例的节流强度或严重性的示例的系统图。图5中所图示的系统图500仅用于说明而被提供。在不脱离本公开的范围的情况下可以使用系统图500的其他示例。在一些示例中,系统图500图示了如何实现节流。
图5图示了可以由功率预算管理器的节流模块124使用来随时间节流被分配给一个或多个应用130的处理功率的若干节流技术的影响。例如,图5图示了通过处理器核分配505和频率限制507中的一个或多个来管理节流严重性501,频率限制507是处理器可以生成脉冲的频率,脉冲被用来同步处理组件的操作。EPP平衡503是实施频率限制507和/或减少一个或多个应用130的可用核505的数目的严重性的度量。EPP平衡503是被用来在性能与节能之间进行平衡的节流技术。处理器核分配505包括减少可用于应用的核109的数目或应用级别,这限制了可用于特定应用或应用级别的处理功率。降低针对给定应用或应用级别的最大CPU频率会降低最大处理器速度,这进而会降低分配给(多个)给定应用的功率并影响应用性能。
在一些实现方式中,这些不同的技术可以单独地实现。在其他实现方式中,可以组合地、连续地和/或并行地实现一种或多种技术以解决平台缓解阈值。在一个实施例中,可以首先应用频率限制507,然后接下来可以基于期望的性能和经验参数、利用频率降低和核限制的重叠量中的可配置选项来减少核分配。
系统图500图示了节流严重性501。节流严重性501测量所执行的节流的严重性。节流严重性501可以测量如图4中所示生成的节流分数,并且可以被用来确定实施哪个或哪些节流机制以及实施所确定的一个或多个节流机制到什么强度。如图5中所示,节流严重性501由步长大小5、10、15、最大步长减十、最大步长减五以及最大步长来限定。步长可以是节流分数增加或减少多少的度量,如图4的描述中所描述的。例如,在节流严重性0(被标识为时间509)处,不执行节流,并且在节流严重性最大(被标识为时间517)处,执行最大强度的节流。系统图500图示了随着节流严重性501朝向最大节流严重性增加,通过如下操作来增加EPP控制:将为一个应用130或多个应用130分配的核505的数目从所有可用核减少到一个可用核并应用频率限制507将可用频率上限设置在1GHz,以便减慢一个应用130或多个应用130可以运行的速度。
当在511处EPP控制503技术被应用于控制平衡时,步骤0处的+0指示EPP控制以节能为代价来注重性能。随着时间的推移,EPP控制503可以被调谐以平衡性能和节能,如参考标号519处的+50所图示,其中频率限制507已经实施了一段时间并且可用核505的减少刚刚被启动,或者更注重节能而不是性能,如参考标号521处的+100所图示,其中处理器核已经被减少至仅1个核,并且最大频率限制降至1GHz。采用EPP控制技术可以实现一种更渐进的方法来调整与给定应用相关联的功耗和节能,而不是节流被分配给给定应用的处理功率或者不节流处理功率的一种二元选项。换句话说,参考标号511表示没有附加EPP控制的+0处的时间,参考标号519表示+50处的时间,其中EPP控制被调谐为同等地平衡性能和节能,而参考标号521表示+100处的时间,其中EPP控制被调谐为注重节能而不是性能。
系统图500还图示了减少向应用允许的分配核505的技术。在该说明性示例中,在参考标号513处,其中EPP控制达到+50,功率预算管理器142开始限制或减少允许应用130在其上执行的核109的数目。限制应用130的访问以在更少的核109上运行可以减少应用130的功耗,同时如果需要则为其他更高优先级的应用释放核。低QoS应用130通常可以具有可在其上运行的所有或许多核,但是随着节流被应用,功率预算管理器142可以逐渐减少可用核的数目,如果需要的话甚至在参考标号517处减少到单个核,以最小化功耗并且因此减少后台应用对用户体验和性能的影响。
系统图500还图示了频率限制技术507。CPU频率的最大频率上限是比EPP控制503偏置技术更严格的限制。随着功率预算管理器142检测到额外节流是必要的或推荐的,对给定应用(诸如低QoS应用)可用的CPU频率的比例上限可以被采用。在一些实现方式中,该技术可以在一定程度上被使用,诸如在示例性系统图500中所示的参考标号515处所图示的1GHz处,因为太低的值的频率上限对于功率效率来说变得次优。换句话说,可以降低功耗,并且可以节流后台活动,同时仅推动到不会对功率效率产生负面影响的程度。
因此,功率预算管理器142利用若干机制来节流处理功率,特别是后台应用130的处理功率。在一些实现方式中,功率预算管理器142经由EPP进程来节流处理功率。例如,在包括对其CPU频率具有自主控制(也称为自主频率斜坡)的处理器的系统中,可以对EPP值进行编程以用于频率选择。换句话说,节流不是由计算设备102的操作系统直接控制,而是可以由处理器本身来控制。因此,节流可以由OS来间接控制,而不是由OS直接控制精确频率。可以添加EPP值以便使处理器使用更少的处理功率并且更有效地执行,或者移除EPP值,以便允许处理器以效率为代价使用更多的处理功率。本文所描述的EPP机制可以是用于自主频率选择的OS影响的ACPI标准接口。
在一些示例中,功率预算管理器142在被配置为运行低QoS线程时降低CPU的最大频率,例如从最大频率降低到1GHz,如图5中所示。在一些示例中,功率预算管理器142限制低QoS线程一次可以运行的核的数目,例如从所有核限制到一个核。在一些示例中,动态地调度线程,并且基于功率相对于系统的预算(诸如热预算)的当前状态来调整CPU频率以降低频率。在一些示例中,频率限制507在所分配的核505的数目减少之前开始被限制,如频率限制507的开始发生在比所分配的核505的数目减少更早的时间所证明的。
在一个特定示例中,低QoS应用在40PPM检查间隔内被节流至1GHz,并且然后在接下来的40PPM间隔内被减少至一个核。在此示例中,由于在运行中的早期的积极节流,后台实例可能会在剩余的运行中受到较不积极的节流。
在一些实现方式中,功率预算管理器142针对所需要的节流的积极性而自动调整处理功率的节流。换句话说,功率预算管理器142确定如何快速且积极地缩减或降低处理功率。例如,功率预算管理器142的CPU包括自动节流机制作为故障保护以避免损害CPU的结构完整性。因此,本公开的各方面认识到,如果CPU已经自动节流,则本文所描述的节流过程也将更积极地节流在后台中标识的附加问题。
本公开的各种示例进一步确定每个QoS级别被授权在哪些核109上运行的位掩码。例如,如下表1中所示,在其中检测到节流的每次PPM检查之后,可以配置针对每个QoS级别的可用核的计数,并且可以控制例示可用的特定处理器的位掩码。因此,核109的数目、以及允许低QoS和eco QoS应用130在哪些特定核上运行被约束以减少它们的影响。在一些示例中,可以选择可供低QoS应用130使用的特定核以最佳地减少它们对较高QoS应用130的影响。例如,可以限制调度以防止对共享高速缓存的影响。
/>
表1
因此,本公开的各种示例使得能够基于输入信号的主动性或反应性来应用不同级别的节流。在一些示例中,主动性节流包括跟踪由QoS级别144所应用的实时功率使用。在一些示例中,反应性节流包括对问题做出响应,诸如达到热限制、CPU频率降低或发生的风扇噪音级。
本公开的各种示例还使得能够通过基于相对于系统的热预算的功率使用的当前状态来调整CPU频率和运行时的线程的动态调度来降低功率。确定在哪里调度前台和后台线程可以包括:基于核109的效率等级跨系统中的不同工作来划分功率预算。本公开的各种示例还使得能够基于了解工作对前台体验的重要性级别(由应用/服务开发人员编程或从试探法推断出来)通过从功率预算视角理解哪些工作需要被优先排序来利用QoS系统。
本公开的各种示例使得能够自动调整每个工作负载的处理功率和形状因数。可以以独立于硅和硬件的方式来将机制应用在任何类型的输入信号、或热相关或功率递送相关的挑战。缩减资源使用的积极性可以基于系统接近热限制的程度或接近热限制的速度来自动地调整。可以根据工作等级(例如,低、中、高)来使用管理资源的时间顺序以实现分级系统。可以针对不同组件(例如CPU、GPU、NPU、磁盘)进行功率预算管理。
示例性操作环境
图6是用于实现本文所公开的各方面的示例计算设备600的框图,并且通常被指定为计算设备600。计算设备600是合适的计算环境的示例并且不旨在建议对本文公开的示例的使用或功能的范围的任何限制。计算设备600也不应当被解释为具有与所图示的任何一个组件/模块或其组合相关的任何依赖性或要求。本文所公开的示例可以在计算机代码或机器可用指令的一般上下文中被描述,包括由计算机或其他机器(诸如个人数据助理或其他手持设备)执行的计算机可执行指令(诸如程序组件)。通常,包括例程、程序、对象、组件、数据结构等等的程序组件是指执行特定任务或实现特定抽象数据类型的代码。所公开的示例可以在各种系统配置中被实践,包括个人计算机、膝上型计算机、智能电话、移动平板计算机、手持设备、消费电子产品、专用计算设备等。当任务由通过通信网络链接的远程处理设备执行时所公开的示例还可以在分布式计算环境中被实践。
在一些示例中,计算设备600是计算设备102。因此,存储器602、处理器608、(多个)呈现组件610和网络626可以分别是存储器104、处理器108、用户界面110和网络140。然而,这些示例不应被解释为限制性的。各种示例都是可能的。
计算设备600包括直接或间接耦合以下设备的总线620:计算机存储存储器602、一个或多个处理器608、一个或多个呈现组件610、I/O端口614、I/O组件616、电源618和网络组件612。虽然计算设备600被描述为看似单个设备,但是多个计算设备600可以一起工作并共享所描述的设备资源。例如,存储器602可以跨多个设备分布,并且(多个)处理器608可以与不同的设备一起容纳。
总线620表示可以是一个或多个总线(诸如地址总线、数据总线或其组合)。尽管图6的各个块为了清楚起见而用线示出,可以用替代表示来完成描绘各种组件。例如,诸如显示设备之类的呈现组件在一些示例中是I/O组件,并且处理器的一些示例具有它们自己的存储器。在诸如“工作站”、“服务器”、“膝上型计算机”、“手持设备”等这样的类别之间不进行区分,因为所有类别都被设想在图6以及本文对“计算设备”的引用的范围内。存储器602可以采取下面的计算机存储介质引用的形式,并且可操作地为计算设备600提供计算机可读指令、数据结构、程序模块和其他数据的存储。在一些示例中,存储器602存储操作系统、通用应用平台或其他程序模块和程序数据中的一个或多个。因此,存储器602能够存储和访问数据604和指令606,数据604和指令606可由处理器608执行并且被配置为执行本文所公开的各种操作。在一些实现方式中,存储器是存储器104和/或数据存储设备132,并且数据604是数据134。
在一些示例中,存储器602包括易失性和/或非易失性存储器、可移动或不可移动存储器、虚拟环境中的数据磁盘或其组合形式的计算机存储介质。存储器602可以包括与计算设备600相关联或者可由计算设备600访问的任意数目的存储器。存储器602可以在计算设备600内部(如图6中所示)、在计算设备600外部或者两者。存储器602的示例包括但不限于随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存或其他存储器技术;CD-ROM、数字多功能盘(DVD)或其他光学或全息介质;磁盒、磁带、磁盘存储装置或其他磁存储设备;连接到模拟计算设备的存储器;或用于编码期望信息并供计算设备600访问的任何其他介质。附加地或备选地,存储器602可以跨多个计算设备600分布,例如在其中在多个计算设备600上执行指令处理的虚拟化环境中。出于本公开的目的,“计算机存储介质”、“计算机存储存储器”、“存储器”和“存储器设备”是计算机存储存储器602的同义术语,并且这些术语都不包括载波或传播信号。
(多个)处理器608可以包括从诸如存储器602或I/O组件616之类的各种实体读取数据的任意数目的处理单元,并且可以包括CPU和/或GPU。具体地,(多个)处理器608被编程为执行用于实现本公开的各方面的计算机可执行指令。这些指令可以由处理器、由计算设备600内的多个处理器、或者由客户端计算设备600外部的处理器来执行。在一些示例中,(多个)处理器608被编程为执行诸如附图中所图示的那些指令。此外,在一些示例中,(多个)处理器608表示用于执行本文描述的操作的模拟技术的实现。例如,操作可以由模拟客户端计算设备600和/或数字客户端计算设备600来执行。在一些实现方式中,处理器608是处理器108并且执行本文所描述的各种组件,诸如本文所述的包括应用位置确定模块118、功率使用模块120、阈值监测模块122、节流模块124、优先排序模块126和应用130的功率预算管理器142。
(多个)呈现组件610向用户或其他设备呈现数据指示。示例性呈现组件包括显示设备、扬声器、打印组件、振动组件等。本领域技术人员将理解并领会,计算机数据可以以多种方式来呈现,诸如在图形用户界面(GUI)中可视地、通过扬声器可听地、在计算设备600之间无线地、跨有线连接或以其他方式来呈现。I/O端口614允许计算设备600逻辑地耦合到包括I/O组件616的其他设备,其中一些组件可以是内置的。示例I/O组件616包括例如但不限于麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、打印机、无线设备等。
计算设备600可以使用到一个或多个远程计算机的逻辑连接、经由网络组件612在联网环境中操作。在一些示例中,网络组件612包括网络接口卡和/或用于操作网络接口卡的计算机可执行指令(例如,驱动程序)。计算设备600和其他设备之间的通信可以使用通过任何有线或无线连接的任何协议或机制来发生。在一些示例中,网络组件612可操作以在使用短距离通信技术(例如,近场通信(NFC)、BluetoothTM品牌通信等等)的设备之间使用传输协议通过公共、私有或混合(公共和私有)或其组合而无线地传送数据。网络组件612通过无线通信链路622和/或有线通信链路622a跨网络626来与云资源624通信。通信链路622和622a的各种不同示例包括无线连接、有线连接和/或专用链路,并且在一些示例中,至少一部分通过互联网来路由。
尽管结合示例计算设备进行了描述,但是本公开的示例能够利用许多其他通用或专用计算系统环境、配置或设备来实现。可以适合与本公开的各方面一起使用的众所周知的计算系统、环境和/或配置的示例包括但不限于智能电话、移动平板计算机、移动计算设备、个人计算机、服务器计算机、手持或膝上型计算机设备、多处理器系统、游戏机、基于微处理器的系统、机顶盒、可编程消费电子产品、移动电话、移动计算和/或可穿戴或附件形式的通信设备(例如手表、眼镜、头戴式耳机或耳机)、网络PC、小型计算机、大型计算机、包括上述任何系统或设备的分布式计算环境、虚拟现实(VR)设备、增强现实(AR)设备、混合现实(MR)设备、全息设备等等。这样的系统或设备可以以任何方式接受来自用户的输入,包括来自诸如键盘或定点设备之类的输入设备、经由手势输入、接近输入(诸如通过悬停)和/或经由语音输入。
本公开的示例可以在诸如程序模块之类的计算机可执行指令的一般上下文中进行描述,其由一个或多个计算机或其他设备以软件、固件、硬件或其组合执行。计算机可执行指令可以被组织成一个或多个计算机可执行组件或模块。通常,程序模块包括但不限于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构。本公开的各方面可以用任何数目和组织的此类组件或模块来实现。例如,本公开的各方面不限于特定的计算机可执行指令、或者附图中图示和本文中描述的特定组件或模块。本公开的其他示例可以包括具有比本文中图示和描述的更多或更少的功能性的不同计算机可执行指令或组件。在涉及通用计算机的示例中,本公开的各方面在被配置为执行本文描述的指令时将通用计算机转换为专用计算设备。
作为示例而非限制,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块等之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动存储器。计算机存储介质是有形的并且与通信介质互斥。计算机存储介质以硬件实现并且不包括载波和传播信号。出于本公开的目的,计算机存储介质本身不是信号。示例性计算机存储介质包括硬盘、闪存驱动器、固态存储器、相变随机存取存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其他存储器技术、压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)或其他光存储、磁盒、磁带、磁盘存储装置或其他磁存储设备,或可以被用来存储供计算设备访问的信息的任何其他非传输介质。相反,通信介质通常将计算机可读指令、数据结构、程序模块等等体现在诸如载波或其他传输机制之类的调制数据信号中,并且包括任何信息递送介质。
本文中图示和描述的本公开的示例中的操作的执行或执行的顺序不是必需的,并且可以在各种示例中以不同的顺序方式来执行。例如,预期在另一操作之前、同时或之后执行或实行特定操作在本公开的各方面的范围内。当介绍本公开的各方面或其示例的元素时,冠词“一”、“一个”、“该”和“所述”旨在意指存在一个或多个元素。术语“包括”、“包含”和“具有”旨在是包容性的,并且元素可能存在除了所列出的元素之外的附加元素。术语“示例性”旨在意指“……的示例”。短语“以下中的一个或多个:A、B和C”是指“A中的至少一个和/或B中的至少一个和/或C中的至少一个”。
已经详细描述了本公开的各方面,很显然,在不脱离如所附权利要求中限定的本公开的各方面的范围的情况下,修改和变化是可能的。由于在不脱离本公开的各方面的范围的情况下可以对以上构造、产品和方法进行各种改变,因此上述描述中包含的和附图中所示的所有内容应被解释为说明性的,而不是限制性的。
其他示例
一种用于管理功率预算的示例系统,包括:操作系统、至少一个处理器;存储器,其存储由至少一个处理器可执行的一个或多个应用;以及在操作系统上实现的功率预算管理器,其向一个或多个应用中的每个应用指定个体服务质量(QoS)指定,基于个体QoS指定来向一个或多个应用中的每个应用指派节流优先级,确定平台缓解阈值是否被超过,并且响应于确定平台缓解阈值被超过,基于节流优先级来节流被分配给一个或多个应用中的至少一个应用的处理功率。
一种用于管理功率预算的示例计算机实现的方法,包括:由在至少一个处理器上实现的功率预算管理器向一个或多个应用中的每个应用指定个体服务质量(QoS)指定,该一个或多个应用由至少一个处理器可执行,由功率预算管理器基于个体QoS指定向一个或多个应用中的每个应用指派节流优先级,由功率预算管理器确定平台缓解阈值是否被超过,响应于确定平台缓解阈值被超过,功率预算管理器基于节流优先级来节流被分配给一个或多个应用中的至少一个应用的处理功率。
一种存储用于管理功率预算的多个指令的示例一个或多个计算机存储介质,当该指令由处理器执行时,使得在处理器上实现的功率预算管理器:向一个或多个应用中的每个应用指定个体服务质量(QoS)指定,该一个或多个应用由处理器可执行,基于个体QoS指定向指定的一个或多个应用中的每个应用指派节流优先级,确定平台缓解阈值是否被超过,并响应于确定平台缓解阈值被超过,基于节流优先级来节流被分配给一个或多个应用中的至少一个应用的处理功率。
备选地,或者除了本文描述的其他示例之外,示例包括以下的任意组合:
·其中平台缓解阈值是温度阈值、功耗阈值、噪声级别阈值或应用性能阈值中的至少一个;
·其中节流被分配给至少一个应用的处理功率还包括以下中的至少一个:降低至少一个应用的频率上限、或减少至少一个应用可用的核的数目;
·该系统还包括被配置为实时或近实时地收集数据的传感器;
·其中功率预算管理器针对平台缓解阈值而监测收集的数据;
·其中响应于对至少一个应用的处理功率的节流,功率预算管理器针对平台缓解阈值而进一步分析更新后的收集的数据;
·其中响应于确定更新后的收集的数据满足或超过平台缓解阈值,功率预算管理器节流被分配给一个或多个应用中的下一应用的处理功率;
·其中功率预算管理器进一步迭代地生成节流分数,以预定义的间隔执行处理器功率管理检查(PPM)以标识模型特定寄存器(MSR)值,基于所标识的MSR值来调整所生成的节流分数,根据调整后的节流分数来节流被分配给至少一个应用的处理功率;
·其中向一个或多个应用中的每个应用指定个体QoS指定还包括:由功率预算管理器标识一个或多个当前正在执行的应用,以及由功率预算管理器确定该一个或多个当前正在执行的应用的当前状态;
·其中当前状态是以下中的至少一个:(i)在前台执行、在用户界面上可见并且处于焦点,(ii)在前台执行、在用户界面上可见或部分可见,或者(iii)在后台执行;
·其中个体QoS指定包括高QoS级别、中等QoS级别、低QoS级别、eco QoS级别和多媒体QoS级别中的至少一个,
·降低至少一个应用的频率上限、或减少至少一个应用可用的核数目;
·由传感器实时或近实时地收集数据;
·由功率预算管理器针对平台缓解阈值而监测收集的数据;
·响应于对至少一个应用的处理功率的节流,由功率预算管理器针对平台缓解阈值而分析更新后的收集的数据,并且响应于确定更新后的收集的数据满足或超过平台缓解阈值,由功率预算管理器节流被分配给一个或多个应用中的下一个应用的处理功率;
·其中向一个或多个应用中的每个应用指定个体QoS指定还包括由功率预算管理器标识一个或多个当前正在执行的应用,以及由功率预算管理器确定该一个或多个当前正在执行的应用的当前状态,其中当前状态是以下中的至少一个:(i)在前台执行、在用户界面上可见并且处于焦点,(ii)在前台执行、在用户界面上可见或部分可见,或者(iii)在后台执行;
·其中平台缓解阈值是温度阈值、功耗阈值、噪声级别阈值或应用性能阈值中的至少一个;
·降低至少一个应用的频率上限或减少至少一个应用可用的核数目;
·接收由传感器收集的数据,该数据是实时或近实时地收集的;
·针对平台缓解阈值而监测收集的数据;
·响应于对至少一个应用的处理功率的节流,针对平台缓解阈值分析更新后的收集的数据,并且响应于确定更新后的收集的数据满足或超过平台缓解阈值,节流被分配给一个或多个应用中的下一个应用的处理功率;以及
·向一个或多个应用中的每个应用指定个体QoS指定,标识一个或多个当前正在执行的应用,并且确定该一个或多个当前正在执行的应用的当前状态,其中该当前状态是以下中的至少一个:(i)在前台执行、在用户界面上可见并且处于焦点,(ii)在前台执行、在用户界面上可见或部分可见,或(iii)在后台执行。
虽然本公开的各方面没有跟踪个人可标识信息,但是已经参考从用户监测和/或收集的数据描述了示例。在一些示例中,可以(例如,经由对话框或偏好设置)向用户提供数据收集的通知,并且给予用户机会以给予或拒绝对监测和/或收集的许可。许可可以采取选择加入许可或选择退出许可的形式。
尽管已经以特定于结构特征和/或方法动作的语言描述了本主题,但是应当理解,所附权利要求中限定的主题不一定局限于上述特定特征或动作。相反,上述特定特征和动作作为实现权利要求的示例形式而被公开。
应当理解,上述益处和优点可以涉及一个实施例或者可以涉及多个实施例。实施例不限于解决任何或所有所述问题的实施例或者那些具有任何或所有所述益处和优点的实施例。还应当理解,对“一个”项目的引用是指那些项目中的一个或多个。
术语“包括”在本说明书中被用来意指包括其后的(多个)特征或(多个)动作,而不排除一个或多个附加特征或动作的存在。
在一些示例中,图中所示的操作可以被实现为编码在计算机可读介质上的软件指令、被编程或设计为执行操作的硬件、或两者。例如,本公开的各方面可以被实现为片上系统或包括多个互连的导电元件的其他电路。
除非另外指定,否则在被在图示和描述的本公开的示例中的操作的执行顺序或性能不是必需的。也就是说,除非另外指定,否则操作可以以任何顺序执行,并且本公开的示例可以包括比本文中所公开的操作更多或更少的操作。例如,预期在另一操作之前、同时或之后实现或执行特定操作在本公开的各方面的范围内。
Claims (15)
1.一种用于管理功率预算的系统,所述系统包括:
操作系统;
至少一个处理器;
存储器,所述存储器存储由所述至少一个处理器可执行的一个或多个应用;以及
功率预算管理器,在所述操作系统上实现,所述功率预算管理器向所述一个或多个应用中的每个应用指定个体服务质量(QoS)指定,基于所述个体QoS指定向所述一个或多个应用中的每个应用指派节流优先级,确定平台缓解阈值是否被超过,并且响应于确定所述平台缓解阈值被超过,基于所述节流优先级来节流被分配给所述一个或多个应用中的至少一个应用的处理功率。
2.根据权利要求1所述的系统,其中所述平台缓解阈值是以下中的至少一项:温度阈值、功耗阈值、噪声级别阈值或应用性能阈值。
3.根据权利要求1所述的系统,其中节流被分配给所述至少一个应用的所述处理功率还包括以下中的至少一项:
降低所述至少一个应用的频率上限、或减少所述至少一个应用可用的核的数目。
4.根据权利要求1所述的系统,还包括:
传感器,所述传感器被配置为实时或近实时地收集数据,
其中所述功率预算管理器针对所述平台缓解阈值而监测收集的所述数据。
5.根据权利要求4所述的系统,其中:
响应于对所述至少一个应用的所述处理功率的所述节流,所述功率预算管理器针对所述平台缓解阈值而进一步分析更新后的收集的数据,以及
响应于确定所述更新后的收集的数据满足或超过所述平台缓解阈值,所述功率预算管理器节流被分配给所述一个或多个应用中的下一应用的所述处理功率。
6.根据权利要求5所述的系统,其中所述功率预算管理器还:
迭代地生成节流分数,
以预定义的间隔执行处理器功率管理检查(PPM),以标识模型特定寄存器(MSR)值;
基于所标识的MSR值来调整所生成的所述节流分数;以及
根据调整后的所述节流分数来节流被分配给所述至少一个应用的所述处理功率。
7.根据权利要求1所述的系统,其中向所述一个或多个应用中的每个应用指定所述个体QoS指定还包括:
由所述功率预算管理器标识一个或多个当前正在执行的应用,以及
由所述功率预算管理器确定所述一个或多个当前正在执行的应用的当前状态。
8.根据权利要求7所述的系统,其中所述当前状态是以下中的至少一项:(i)在前台执行、在用户界面上可见并且处于焦点,(ii)在所述前台执行、在所述用户界面上可见或部分可见,或(iii)在后台执行。
9.根据权利要求7所述的系统,其中所述个体QoS指定包括以下中的至少一项:高QoS级别、中等QoS级别、低QoS级别、eco QoS级别和多媒体QoS级别。
10.一种用于管理功率预算的计算机实现的方法,所述计算机实现的方法包括:
由在至少一个处理器上实现的功率预算管理器向一个或多个应用中的每个应用指定个体服务质量(QoS)指定,所述一个或多个应用由所述至少一个处理器可执行;
由所述功率预算管理器基于所述个体QoS指定向所述一个或多个应用中的每个应用指派节流优先级;
由所述功率预算管理器确定平台缓解阈值是否被超过;以及
响应于确定所述平台缓解阈值被超过,由所述功率预算管理器基于所述节流优先级来节流被分配给所述一个或多个应用中的至少一个应用的处理功率。
11.根据权利要求10所述的计算机实现的方法,其中节流被分配给所述至少一个应用的所述处理功率还包括以下中的至少一项:
降低所述至少一个应用的频率上限、或减少所述至少一个应用可用的核的数目。
12.根据权利要求10所述的计算机实现的方法,还包括:
由传感器实时或近实时地收集数据,以及
由所述功率预算管理器针对所述平台缓解阈值而监测收集的所述数据。
13.根据权利要求12所述的计算机实现的方法,还包括:
响应于对所述至少一个应用的所述处理功率的所述节流,由所述功率预算管理器针对所述平台缓解阈值而分析更新后的收集的数据,以及
响应于确定所述更新后的收集的数据满足或超过所述平台缓解阈值,由所述功率预算管理器节流被分配给所述一个或多个应用中的下一应用的所述处理功率。
14.根据权利要求10所述的计算机实现的方法,其中向所述一个或多个应用中的每个应用指定所述个体QoS指定还包括:
由所述功率预算管理器标识一个或多个当前正在执行的应用,以及
由所述功率预算管理器确定所述一个或多个当前正在执行的应用的当前状态,其中所述当前状态是以下中的至少一项:(i)在前台执行、在用户界面上可见并且处于焦点,(ii)在所述前台执行、在所述用户界面上可见或部分可见,或(iii)在后台执行。
15.一种存储用于管理功率预算的多个指令的一个或多个计算机存储介质,所述指令当由处理器执行时,使得在所述处理器上实现的功率预算管理器:
向一个或多个应用中的每个应用指定个体服务质量(QoS)指定,所述一个或多个应用由处理器可执行,
基于所述个体QoS指定向指定的所述一个或多个应用中的每个应用指派节流优先级,
确定平台缓解阈值是否被超过,以及
响应于确定所述平台缓解阈值被超过,基于所述节流优先级来节流被分配给所述一个或多个应用中的至少一个应用的处理功率。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163213392P | 2021-06-22 | 2021-06-22 | |
US63/213,392 | 2021-06-22 | ||
PCT/US2022/034195 WO2022271606A1 (en) | 2021-06-22 | 2022-06-20 | Power budget management using quality of service (qos) |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117546122A true CN117546122A (zh) | 2024-02-09 |
Family
ID=84489177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280044041.3A Pending CN117546122A (zh) | 2021-06-22 | 2022-06-20 | 使用服务质量(qos)的功率预算管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11940860B2 (zh) |
EP (1) | EP4359885A1 (zh) |
CN (1) | CN117546122A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI799154B (zh) * | 2022-02-24 | 2023-04-11 | 華碩電腦股份有限公司 | 電子裝置及其效能優化方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190930B2 (en) | 2009-03-30 | 2012-05-29 | Intel Corporation | Methods and apparatuses for controlling thread contention |
US9454379B2 (en) | 2011-11-22 | 2016-09-27 | Intel Corporation | Collaborative processor and system performance and power management |
US10386900B2 (en) | 2013-09-24 | 2019-08-20 | Intel Corporation | Thread aware power management |
US10203746B2 (en) | 2014-05-30 | 2019-02-12 | Apple Inc. | Thermal mitigation using selective task modulation |
US9652027B2 (en) | 2015-04-01 | 2017-05-16 | Microsoft Technology Licensing, Llc | Thread scheduling based on performance state and idle state of processing units |
US9983557B2 (en) | 2015-10-13 | 2018-05-29 | Qualcomm Incorporated | Adaptive thermal control and power budget |
US10503238B2 (en) | 2016-11-01 | 2019-12-10 | Microsoft Technology Licensing, Llc | Thread importance based processor core parking and frequency selection |
US10732694B2 (en) | 2017-09-22 | 2020-08-04 | Qualcomm Incorporated | Power state control of a mobile device |
US11422849B2 (en) | 2019-08-22 | 2022-08-23 | Intel Corporation | Technology for dynamically grouping threads for energy efficiency |
-
2022
- 2022-06-20 US US17/844,626 patent/US11940860B2/en active Active
- 2022-06-20 EP EP22744351.2A patent/EP4359885A1/en active Pending
- 2022-06-20 CN CN202280044041.3A patent/CN117546122A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11940860B2 (en) | 2024-03-26 |
EP4359885A1 (en) | 2024-05-01 |
US20220404888A1 (en) | 2022-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11088961B2 (en) | Monitoring data streams and scaling computing resources based on the data streams | |
US8397087B1 (en) | Systems and methods for individually managing the power usage of software applications | |
US20120192200A1 (en) | Load Balancing in Heterogeneous Computing Environments | |
US20160283284A1 (en) | Technologies for offloading and on-loading data for processor/coprocessor arrangements | |
US9465622B2 (en) | Application defined computing component configuration | |
GB2544609A (en) | Granular quality of service for computing resources | |
KR102169692B1 (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 | |
JP2021517697A (ja) | リソーススケジューリング方法および端末デバイス | |
US10079774B2 (en) | Hierarchical fairshare of multi-dimensional resources | |
US20180120920A1 (en) | Thread Importance Based Processor Core Parking And Frequency Selection | |
US20170212835A1 (en) | Computing system with memory management mechanism and method of operation thereof | |
US11579906B2 (en) | Managing performance optimization of applications in an information handling system (IHS) | |
US20210397476A1 (en) | Power-performance based system management | |
US20200379804A1 (en) | Multi-level scheduling | |
US20220179706A1 (en) | Adaptive resource allocation system and method for a target application executed in an information handling system (ihs) | |
US10275007B2 (en) | Performance management for a multiple-CPU platform | |
US11940860B2 (en) | Power budget management using quality of service (QoS) | |
CN110795323A (zh) | 负载统计方法、装置、存储介质及电子设备 | |
US10474392B2 (en) | Dynamic scheduling for virtual storage devices | |
US10929245B1 (en) | Flexible scheduler for backups | |
WO2022271606A1 (en) | Power budget management using quality of service (qos) | |
US20230133544A1 (en) | Systems and methods for prioritizing memory allocation for isolated computing workspaces executing on information handling systems | |
US11844188B2 (en) | Distribution of available power to devices in a group | |
US20240211019A1 (en) | Runtime-learning graphics power optimization | |
US20230214271A1 (en) | Method of scheduling cache budget in multi-core processing device and multi-core processing device performing the same |
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 |