CN104969142B - 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法 - Google Patents
用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法 Download PDFInfo
- Publication number
- CN104969142B CN104969142B CN201380072130.XA CN201380072130A CN104969142B CN 104969142 B CN104969142 B CN 104969142B CN 201380072130 A CN201380072130 A CN 201380072130A CN 104969142 B CN104969142 B CN 104969142B
- Authority
- CN
- China
- Prior art keywords
- processor
- frequency
- performance guarantee
- guarantee value
- workload
- 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.)
- Active
Links
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
- 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/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)
- Debugging And Monitoring (AREA)
Abstract
包括动态时钟和电压调节(DCVS)解决方案的方法、系统和设备,其被配置为计算并强制执行针对一组处理器的性能保证,以确保这些处理器不会在繁忙状态(例如,由于瞬态工作负荷)保持比预定的时间量要多的一组合时段,在此时段上该预定的时间量是这些处理器中的一个处理器完成其预先计算的稳定状态工作负荷所需要的时间。该DCVS可以基于可变的延迟来调整这些处理器中的一个或多个处理器的频率和/或电压,以确保不管处理器的工作频率或电压如何,该多处理器系统只落后其稳定状态工作负荷最多预定义的最大工作量。
Description
相关申请
本申请是于2012年11月5日递交的、名称为“System and Method forControlling Central Processing Unit Power with Guaranteed TransientDeadlines”的美国专利申请No.13/669,043的后续部分,后一申请是于2010年11月11日递交的、名称为“System and Method for Controlling Central Processing Unit Powerwith Guaranteed Transient Deadlines”的美国专利申请No.12/944,467的后续部分,该申请要求于2009年12月16日递交的、名称为“System and Method of DynamicallyControlling Power in a Central Processing Unit”的美国临时申请No.61/286,991的优先权利益,这些申请都以引用的方式整体并入本申请。
交叉引用申请
本申请关于并以引用方式合并Rychlik等人提交的名称为“System And MethodFor Controlling Central Processing Unit Power Based On Inferred WorkloadParallelism”的美国专利申请No.12/944,140;Richlik等人提交的名称为“System andMethod for Controlling Central Processing Unit Power in a Virtualized System”的美国专利申请No.12/944,202;Richlik等人提交的名称为“System and Method forAsynchronously and Independently Controlling Core Clocks in a MulticoreCentral Processing Unit”的美国专利申请No.12/944,321;Thomson等人提交的名称为“System and Method for Controlling Central Processing Unit Power with ReducedFrequency Oscillations”的美国专利申请No.12/944,378;Thomson等人提交的名称为“System and Method for Controlling Central Processing Unit Power WithGuaranteed Steady State Deadlines”的美国专利申请No.12/944,561;以及Sur等人提交的名称为“System and Method for Dynamically Controlling a Plurality of Coresin a Multicore Central Processing Unit based on Temperature” 的美国专利申请No.12/944,564。
技术领域
概括地说,本公开内容涉及计算设备,并且更具体地,涉及用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法。
背景技术
便携式计算设备(PCD)到处可见。这些设备可包括蜂窝式电话、便携式数字助理(PDA)、便携式游戏控制台、掌上型计算机,和其它便携式电子设备。除了这些设备的主要功能之外,许多设备包括外围功能。举例来说,蜂窝式电话可以包括进行蜂窝式电话呼叫的主要功能,和静态照相机、视频照相机、全球定位系统(GPS)导航、网络浏览、发送和接收电子邮件、发送和接收文本消息、即按即说能力等的外围功能。随着此类设备的功能性增加,支持此类功能性所需的计算或处理能力也增加。此外,随着计算能力增加,更需要有效地管理提供计算能力的处理器或多个处理器。
因此,所需的是控制多核CPU内的功率的改进的方法。
发明内容
描述了一种用于改善具有多个处理器的计算设备上的性能的方法。该方法可以包括确定第一处理器的稳定状态工作负荷;确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量;计算针对包括所述第一处理器和第二处理器的处理组的性能保证值;将所述第一处理器从空闲状态转换到繁忙状态;基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述第一处理器的频率;确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
描述了一种计算设备,该计算设备可以包括第一处理器;第二处理器; 用于确定所述第一处理器的稳定状态工作负荷的单元;用于确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量的单元;用于计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值的单元;用于将所述第一处理器从空闲状态转换到繁忙状态的单元;用于基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述第一处理器的频率的单元;用于确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段的单元;以及用于当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率的单元。
描述了一种计算设备,该计算设备可以包括第一处理器;第二处理器;以及主处理器,其被配置有处理器可执行指令,以执行包括以下各项的操作:确定所述第一处理器的稳定状态工作负荷;确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量;计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值;将所述第一处理器从空闲状态转换到繁忙状态;基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述第一处理器的频率;确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
描述了一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质具有存储在其上的处理器可执行软件指令,所述处理器可执行软件指令被配置为使主处理器执行包括以下各项的操作:确定第一处理器的稳定状态工作负荷;确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量;计算针对包括所述第一处理器和第二处理器的处理组的性能保证值;将所述第一处理器从空闲状态转换到繁忙状态;基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述 第一处理器的频率;确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
附图说明
合并到本文中并且构成本说明书的一部分的附图,示出了本发明的示例性方面,并且与上文给出的概述和下文给出的详细描述一起用于解释本发明的特征。
图1是处于闭合位置的便携式计算设备(PCD)的第一方面的正视平面图;
图2是处于打开位置的PCD的第一方面的正视平面图;
图3是PCD的第二方面的方框图;
图4是处理系统的方框图;
图5是说明动态地控制CPU内的功率的方法的第一方面的流程图;
图6是说明动态地控制CPU内的功率的方法的第二方面的第一部分的流程图;
图7是说明动态地控制多核CPU的功率的方法的第二方面的第二部分的流程图;
图8是示出随着时间的过去绘制的受动态时钟和电压调节(DCVS)控制的CPU频率的示例性图表;以及
图9是示出各种性能水平的有效瞬态响应时间的示例性图表。
图10是说明根据各个方面实现强制执行性能保证的动态时钟频率/电压调节(DCVS)解决方案的计算设备中的逻辑部件和信息流的框图。
图11A-B是说明用于产生性能保证的一方面方法的处理流图。
图12-图13是说明强制执行性能保证,以确保处理内核不会在繁忙状态保持比预定时间量要多的时间的各个方面方法的处理流图,其中在此时间段上该预定时间量是该处理内核完成其预先计算的、预测的和/或实际的稳定状态工作负荷所需要的时间。
图14是适用于一个方面中使用的移动设备的部件框图。
图15是适用于一个方面中使用的服务器设备的部件框图。
图16是适用于一个方面中使用的膝上型计算机设备的部件框图。
图17是针对在多核系统中执行的线程或工作负荷,设置每内核性能保证的示例性DCVS解决方案的说明。
图18是针对在多核系统中执行的线程或工作负荷,设置基于组的性能保证的示例性DCVS解决方案的说明。
图19是示出用于强制执行性能保证,以确保多处理器系统中的处理器不会在繁忙状态保持比完成其预先计算的、预测的和/或实际的稳定状态工作负荷所需要的时间要多的时间的一方面方法的处理流程图。
具体实施方式
将参照附图来详细地描述各个方面。只要有可能,相同的附图标记将在贯穿附图中用于指代相同或相似的部分。针对特定示例和实现方式进行的引用是用于解释说明的目的,而并不旨在限制本发明或权利要求的范围。
词语“示例性”在本文中用于表示“作为实例、例子或说明”。在本文中描述为“示例性”的任何方面不一定解释为比其它方面优选或有利。
在此描述中,术语“应用”还可以包括具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。另外,本文中所涉及的“应用”还可以包括本质上不可执行的文件,例如可能需要被打开的文档或需要被存取的其它数据文件。
术语“内容”还可以包括具有可执行内容的文件,例如:对象代码、脚本、字节代码、标记语言文件和补丁。另外,本文中所涉及的“内容”还可以包括本质上不可执行的文件,例如可能需要被打开的文档或需要被存取的其它数据文件。
如此描述中所使用,术语“组件”、“数据库”、“模块”、“系统”等旨在意指计算机相关的实体,硬件、固件、硬件和软件的组合、软件或执行中的软件。举例来说,组件可以是(但不限于)运行在处理器上的进程、处理器、对象、可执行文件、执行的线程、程序,和/或计算机。以说明的方式,运行在计算设备上的应用和计算设备两者均可以是组件。一个或多 个组件可以驻留于进程和/或执行的线程内,且组件可以位于一个计算机上和/或分布于两个或两个以上计算机之间。另外,这些组件可从其上存储有各种数据结构的各种计算机可读介质来执行。组件可以诸如根据具有一个或多个数据分组通过本地和/或远程进程进行通信(例如,来自与本地系统、分布式系统和/或跨越例如互联网的网络中的另一个组件进行交互、通过信号的方式与其他系统进行交互的一个组件的数据)。
首先参看图1和图2,其示出示例性便携式计算设备(PCD)且大体上标示为100。如图所示,PCD 100可以包括外壳102。外壳102可以包括上部外壳部分104和下部外壳部分106。图1示出了上部外壳部分104可以包括显示器108。在特定方面中,显示器108可以是触摸屏显示器。上部外壳部分104还可以包括跟踪球输入设备110。此外,如图1中所示,上部外壳部分104可以包括电源打开按钮112和断电按钮114。如图1中所示,PCD 100的上部外壳部分104可以包括多个指示器灯116和扬声器118。每一指示器灯116可以是发光二极管(LED)。
在特定方面中,如图2中所描绘,上部外壳部分104是相对于下部外壳部分106可移动的。具体来说,上部外壳部分104可以是相对于下部外壳部分106可滑动的。如图2中所示,下部外壳部分106可以包括多按钮键盘120。在特定方面中,多按钮键盘120可以是标准QWERTY键盘。在上部外壳部分104相对于下部外壳部分106移动时,可以展现多按钮键盘120。图2进一步示出了PCD 100可以包括下部外壳部分106上的重置按钮122。
参看图3,其示出了便携式计算设备(PCD)的示例性的非限制性的方面且大体上标示为320。如图所示,PCD 320包括片上系统322,该片上系统322包括多核CPU 324。多核CPU324可以包括第零内核325、第一内核326和第N内核327。
如图3中所示,显示控制器328和触摸屏控制器330耦合到多核CPU 324。片上系统322外部的显示器/触摸屏332进而耦合到显示控制器328和触摸屏控制器330。
图3进一步指示视频编码器334(例如,逐行倒相(PAL)编码器、顺序传送彩色与存储(SECAM)编码器,或美国电视系统委员会(NTSC) 编码器)耦合到多核CPU 324。此外,视频放大器336耦合到视频编码器334和显示器/触摸屏332。而且,视频端口338耦合到视频放大器336。如图3中所描绘,通用串行总线(USB)控制器340耦合到多核CPU 324。而且,USB端口342耦合到USB控制器340。存储器344和用户身份模块(SIM)卡346也可以耦合到多核CPU324。此外,如图3中所示,数字照相机348可以耦合到多核CPU 324。在示例性方面中,数字照相机348为电荷耦合设备(CCD)照相机或互补金属氧化物半导体(CMOS)照相机。
如图3中进一步示出的,立体声音频编解码器350可以耦合到多核CPU 324。另外,音频放大器352可以耦合到立体声音频编解码器350。在示例性方面中,第一立体声扬声器354和第二立体声扬声器356耦合到音频放大器352。图3示出了麦克风放大器358也可以耦合到立体声音频编解码器350。另外,麦克风360可以耦合到麦克风放大器358。在特定方面中,调频(FM)无线电调谐器362可以耦合到立体声音频编解码器350。而且,FM天线364耦合到FM无线电调谐器362。此外,立体声头戴式耳机366可以耦合到立体声音频编解码器350。
图3进一步指示射频(RF)收发器368可以耦合到多核CPU 324。RF开关370可以耦合到RF收发器368和RF天线372。如图3中所示,键区374可以耦合到多核CPU 324。而且,具有麦克风的单声道耳机376可以耦合到多核CPU 324。此外,振动器设备378可以耦合到多核CPU324。图3还示出电源380可以耦合到片上系统322。在特定方面中,电源380是将功率供应给PCD 320的、需要功率的各种组件的直流(DC)电源。此外,在特定方面中,电源是可再充电DC电池或DC电源,其中该DC电源从连接到AC电源的交流(AC)到DC变压器得到的。
图3进一步指示PCD 320还可以包括网卡388,该网卡388可用于接入数据网络,例如局域网、个域网或任何其它网络。网卡388可以是蓝牙网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT)网卡,或本领域中众所周知的任何其它网卡。此外,网卡388可以被并入到芯片中,即网卡388可以是芯片上的整个解决方案,且可以不是单独的网卡388。
如图3中所描绘,显示器/触摸屏332、视频端口338、USB端口342、 照相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、立体声头戴式耳机366、RF开关370、RF天线372、键区374、单声道耳机376、振动器378和电源380在片上系统322的外部。
在特定方面中,本文中所描述的方法步骤中的一个或多个可以作为计算机程序指令存储于存储器344中。这些指令可以由多核CPU 324来执行,以便执行本文中所描述的方法。此外,多核CPU 324、存储器344或其组合可以用作用于执行本文中所描述的方法步骤中的一个或多个方法步骤,以便动态地控制多核CPU 324内的每一CPU或内核的功率的单元。
参看图4,示出处理系统且大体上标示为500。在特定方面中,处理系统500可以被并入到上文结合图3所描述的PCD 320中。如图所示,处理器系统500可以包括多核中央处理单元(CPU)402和连接到多核CPU 402的存储器404。多核CPU 402可以包括第零内核410、第一内核412和第N内核414。第零内核410可以包括在其上执行的第零动态时钟和电压调节(DCVS)算法416。第一内核412可以包括在其上执行的第一DCVS算法417。此外,第N内核414可以包括在其上执行的第N DCVS算法418。在特定方面中,每一DCVS算法416、417、418可以独立地在相应的内核412、414、416上执行。
另外,如所说明的,存储器404可以包括存储于其上的操作系统420。操作系统420可以包括调度器422,且调度器422可以包括第一运行队列424、第二运行队列426,和第N运行队列428。存储器404还可以包括存储于其上的第一应用430、第二应用432和第N应用434。
在特定方面中,应用430、432、434可以将一个或多个任务436发送给操作系统420,以在多核CPU 402内的内核410、412、414处进行处理。可以将任务436处理或执行为单个任务、线程或其组合。此外,调度器422可以调度任务、线程或其组合以用于在多核CPU 402内执行。另外,调度器422可以将任务、线程或其组合放置于运行队列424、426、428中。内核410、412、414可以如(例如)由操作系统420所命令的,来从运行队列424、426、428取回任务、线程或其组合,以用于在内核410、412、414处对那些任务和线程的处理或执行。
图4还示出了存储器404可以包括存储于其上的并行度监控器440。并 行度监控器440可以连接到操作系统420和多核CPU 402。具体来说,并行度监控器440可以连接到操作系统420内的调度器422。
参看图5,其示出了动态地控制中央处理单元的功率的方法的第一方面,且大体上标示为500。方法500可以在方框502以循环语句(do loop)开始,其中当设备通电时,可以执行以下步骤。
在方框504处,功率控制器(例如,动态时钟和电压调节(DCVS)算法)可以监控一个或多个CPU。在决策506处,功率控制器可以确定用于CPU的瞬态性能最后期限是否已经期满。如果未期满,则方法500可以结束。否则,如果瞬态性能最后期限已经期满,则方法500可以前进到方框508,且功率控制器可以将CPU移动到较高的性能水平,即下一更高的工作频率。在一个方面中,控制器可以将CPU移动到最大性能水平,即最大CPU频率。然而,在另一方面中,CPU可以不跳跃到最大性能水平。CPU可以跳跃到中等水平,且随后再次跳跃到最大水平或另一较高的性能水平。中等跳跃的数量以及跳跃之间的时间量可以用于确定跳跃的频率值。
在方框510处,CPU可以进入空闲状态。此外,在方框512处,瞬态性能最后期限可以被重置。在方框514处,CPU可以退出空闲状态。移动到决策516,功率控制器可以确定即将发生的CPU频率是否处于最大CPU频率。如果是,则方法500可以结束。否则,如果CPU频率不处于最大CPU频率,则方法可以前进到方框518,且可以重新调度定时器。随后,方法500可以结束。
参看图6,示出了动态地控制中央处理单元的功率的方法的第二方面,且大体上标示为600。开始于方框602,中央处理单元(CPU)可以进入空闲状态。在方框604处,功率控制器(例如,动态时钟和电压调节(DCVS)算法)可以将开始空闲时间(StartIdleTime)设置为等于当前时间(CurrentTime)。此外,在方框606处,功率控制器可以通过从结束空闲时间(EndIdleTime)减去开始空闲时间(StartIdleTime)来确定繁忙时间(BusyTime)。
在方框608处,CPU可以进入软件等待中断(SWFI)状态。在方框610处,CPU可以退出SWFI状态。移动到方框612,功率控制器可以将结束空闲时间(EndIdleTime)设置为等于当前时间(CurrentTime)。此外,在方框 614处,功率控制器可以通过从结束空闲时间(EndIdleTime)减去开始空闲时间(StartIdleTime)来确定空闲时间(IdleTime)。在方框616处,功率控制器可以根据经更新的稳定状态滤波器(UpdateSteadyStateFilter)、繁忙时间(BusyTime)和空闲时间(IdleTime)来确定即将发生的CPU频率(CPUFreq)。其后,方法600可以继续到图7的方框702。
在方框702处,功率控制器可以使用以下公式来确定有效瞬态预算(EffectiveTransientBudget):
EffectiveTransientBudget=(TransientResponseDeadline*NextCPUFreq)/(NextC
PUFreq-CPUFreq)
其中,
TransientResponseDeadline=瞬态响应最后期限,即,松弛预算,
NextCPUFreq=比即将发生的CPU频率高一个频率步长的下一CPU频率,且
CPUFreq=即将发生的CPU频率(CPUFreq)。
在特定方面中,还可以将时钟调度开销(ClockSchedulingOverhead)和时钟切换开销(ClockSwitchOverhead)添加到EffectiveTransientBudget。此外,可以将电压改变开销(VoltageChangeOverhead)添加到EffectiveTransientBudget。移动到方框704,功率控制器可以将跳跃到较高频率(SetJumpToFrequency)的最后期限设置为等于结束空闲时间(EndIdleTime)加上有效瞬态预算(EffectiveTransientBudget)。在另一方面中,对跳跃的最后期限可以是当前时间加上瞬态预算。其后,方法600可以结束。
在特定方面中,结合图6和图7所描述的方法600可以用于计算在耗尽瞬态最后期限之前CPU可以保持在由DCVS确定的频率的时间量,且在将来以所述时间量来调度到较高CPU频率的跳跃。如果在跳跃到较高频率之前重新进入空闲,则可以取消经调度的跳跃。方法600可以将到较高频率的跳跃延迟由EffectiveTransientBudget确定的时间量。
应理解的是,本文中所描述的方法步骤不需要一定以所描述的次序执行。此外,例如“其后”、“随后”、“接下来”等词语无意限制步骤的次序。这些词语仅用于引导读者阅读方法步骤的描述。另外,本文中所描述的方 法被描述为可以在便携式计算设备(PCD)上执行。PCD可以是移动电话设备、便携式数字助理设备、智能本计算设备、上网本计算设备、膝上型计算设备、桌上型计算设备或其组合。
在特定方面中,DCVS算法是一种机制,其测量CPU负荷/空闲时间,且动态地调整CPU时钟频率以努力跟踪工作负荷,从而减少功率消耗,同时仍提供令人满意的系统性能。随着工作负荷改变,CPU吞吐量的改变可以跟踪(但也必定延滞)工作负荷的改变。遗憾的是,在工作负荷具有服务质量(QoS)要求的情况下,这可能引入问题,因为DCVS算法可能不够快地跟踪工作负荷。此外,跟踪可能失败。
许多DCVS技术涉及测量CPU的稳定状态性能要求,且将CPU频率和电压设定为可以满足稳定状态CPU使用的最低水平。这通常通过以下方式来完成:测量一段时间内的CPU利用率(忙百分比);以及将CPU性能水平设定为在其中平均CPU利用率落入高阈值与低阈值之间的性能水平。对平均周期进行优化以使改变时钟频率的频率最小化,同时维持合理的响应度。为了响应于瞬态工作负荷和/或新工作负荷的开始,已经可以利用应急(panic)输入来快速地调高CPU频率。
为了避免DCVS延滞工作负荷并致使任务失败的问题,本文中所公开的系统和方法提供了瞬态性能保证。可以将瞬态性能保证限定为,与在较高性能水平下运行相比,可以延迟连续忙脉冲的最大时间量。这可以通过以下方式来实现:在瞬态性能最后期限期满之前到达较高的性能水平;以及每当变得空闲时便将最后期限重置,因为如果CPU是空闲的,则根据定义,其不处于超额预订状态。如本文中所示,每当系统离开空闲且系统CPU不以最大频率来运行时,可以重新调度定时器以保留QoS保证。
为了使瞬态性能保证的功率影响最小化,本系统和方法使输入的脉冲可能需要频率增加以便满足最后期限的可能性最小化。这可以通过以下方式来实现:延迟频率(即,性能水平)改变,直到已耗尽有效瞬态预算为止,且随后直接跳跃到较高的性能水平且停留在那里,直到脉冲完成为止,如图8中所示。
在特定方面中,将有效瞬态预算计算为被调节到当前性能水平的瞬态响应最后期限。举例来说,如果CPU运行75%的最大时钟速率,且瞬态响 应最后期限是16ms,则有效瞬态预算为64ms,即16ms/(1-0.75)。有效瞬态预算表示在耗尽预算之前CPU可以在当前性能水平下运行多久。如果CPU空闲,则有效瞬态预算可以与瞬态响应最后期限相同。如果处于最大性能水平,则有效瞬态预算是无限的,如图9中所示。
使用本文中所描述的方法,系统可以对任务可以在除了最大水平之外的某个水平下运行的最大时间量提供严格的界限,且因此对需要QoS保证的任务的完成隐含地提供可计算的界限,同时仍允许动态的CPU时钟调节。可以基于哪些任务当前正在运行、全局系统特性、DCVS算法设计或其它特性来设定所述界限,且若系统没有在运行任何具有QoS要求的任务或者若CPU正在最大时钟下运行,则可以完全停用所述界限。
在特定方面中,本方法可以通过以下方式进行扩展:代替当最后期限已期满时跳跃到最大频率,设定更短的内部有效最后期限且跳跃到一个或多个中间频率,同时仍确保在已耗尽最大QoS延迟之前CPU处于最大频率。此外,本方法可以充分地确保维持良好限定的瞬态QoS,而同时降低总CPU功率。
本文中所描述的系统和方法可以利用机会抽样(opportunistic sampling)。换句话说,所述系统和方法可以在周期性的基础上检查定时器期满。在其它方面中,所述系统和方法可以不利用机会抽样。
如上所讨论,各个方面提供对任务完成的严格的且可计算的界限(例如,性能保证)。在各个方面,这样的性能保证可以作为动态时钟和电压/频率调节(DCVS)解决方案的一部分来实现,以改善便携式计算设备(PCD)上的处理器性能和/或减少功率开销,该PCD包括诸如以下各项的移动设备:蜂窝电话、智能手机、个人或移动多媒体播放器、个人数字助理(PDA的)、膝上型计算机、平板计算机、智能本、超级本、掌上计算机、无线电子邮件接收机、具有多媒体互联网功能的蜂窝电话、无线游戏控制器和类似的个人电子设备,该类似的个人电子设备包括存储器、可编程处理器或内核(本文中统称为“处理内核”),并且在电池电源下工作,以使得功率节省方法是有益处的。此外,当各个方面尤其对于运行在电池电源上的便携的和移动的计算设备有用时,这些方面大体上在包括处理器的任何计算设备(例如,通用计算机、桌面型计算机、服务器等等)中都是有用的, 并且减少的功率消耗对其有益处。
一般来讲,芯片浪费的动态功率(切换功率)是C*V2*f,其中,C是每一时钟周期交换的电容,V是电压,而f是切换频率。因此,随着频率变化,动态功率将随之线性变化。动态功率要对处理器芯片消耗的接近总功率的三分之二负责。电压调节可以结合频率调节一起完成,因为芯片运行的频率可以关于其工作电压。一些电部件(例如稳压器)的效率可能随着温度升高而降低,从而功率消耗随着温度增加。由于增加的功率使用可能升高温度,因此电压或频率的增加可能甚至更增加系统功率要求。因此,可以通过在其空闲或轻负荷时降低应用于其处理器的频率和/或电压来增加计算设备的电池寿命。这样的频率和/或电压的降低可以实时地或经由动态时钟和电压/频率调节(DCVS)解决方案来“联机”完成。
一般来讲,DCVS解决方案监控处理器处于空闲的时间比例(相比于其处于繁忙的时间),并且基于处理器处于空闲和/或繁忙的时间比例来确定处理器的频率/电压应该被调整多少。监控处理器处于空闲的时间比例可以包括计算和/或测量用于指示该处理器执行空闲进程或线程(例如,系统空闲进程等)的持续时间的值(例如,时间量、CPU周期的数量等等)。
操作系统可以在确定处理器上没有其它线程准备好被调度时,在该处理器上执行空闲软件应用、进程或线程(本申请中统称为“线程”)。该空闲线程可以执行各种任务(例如,等待中断任务、休眠任务等等),并且每个任务可以包括多个处理器操作。当处理器执行空闲线程时,该处理器可以被称为处于“空闲状态”和/或处于“空闲状况”中的“空闲”。
在多处理器系统中,操作系统(或调度器、控制器等)可以为每个处理器保持一个或多个空闲线程。空闲线程保持准备好执行,从而每个处理器总是具有准备好执行的线程。以这种方式,无论何时线程让出处理器(例如,由于该线程完成其调度的任务或工作负荷),该操作系统都有在该处理器上准备好执行的线程(例如,经由空闲线程的可用性),即使当所有其它的线程都完成,在等待资源或者以其它方式当前没有准备好执行时。
如上所讨论,DCVS解决方案可以基于处理器的工作负荷(其可以包括稳定状态工作负荷)来调整处理器的频率和/或电压。稳定状态工作负荷可以在执行时间之前确定,也就是在处理内核进入繁忙或活动状态以执行 促进工作负荷的操作之前。该稳定状态工作负荷可以通过计算、估计或预测CPU时钟周期的数量、操作的数量、指令的数量和/或完成被调度在该处理内核上的任务所需要的时间量来提前确定。每个处理器可以有一个以上的工作负荷(例如,稳定状态工作负荷和瞬态工作负荷),并且每个处理器可以被要求保持在繁忙、运行或活动状态(本申请中统称为“繁忙状态”)直到其所有工作负荷中的所有任务都完成。
在某些场景中,DCVS解决方案可以降低处理器的频率和/或电压(即,处理器的速度),以实现在不影响处理器的性能的情况下的功率节省。例如,当处理器的工作负荷包括执行时间由存储器访问时间占主导的任务时,频率的降低不会对处理器性能或该任务的执行时间有显著的影响。但是,更常见的,DCVS解决方案必须在处理器的性能(例如,完成给定任务集合所需要的时间等等)和功率消耗(例如,完成给定任务集合所消耗的电池电量)特性之间平衡折衷。通常,任务完成得越快,处理器在完成那些任务时消耗的功率越多。
DCVS解决方案可以被配置为基于处理器的稳定状态工作负荷和稳定状态性能要求,来在性能和功率消耗之间进行平衡。可以通过以下操作来确定该稳定状态性能要求:计算或测量用于指示处理器处于繁忙和/或空闲的持续时间的值(例如,时间量、CPU周期的数量等等),对所计算/测量的值的结果进行平均,以及确定完成该处理器的稳定状态工作负荷所需要的时间/处理的量。基于这些计算,DCVS解决方案可以计算上限频率阈值和下限频率阈值,在这样的范围内处理器可以操作为满足所计算出的稳定状态要求,同时实现降低的功率以及可接受的响应度水平(例如,使得移动设备用户不会注意到差异,等等)。
通常,处理器被要求处理/执行瞬态工作负荷,包括DCVS解决方案没有被先验地通知的并且在稳定状态或频率阈值计算中没有考虑到的“工作突发”。瞬态工作负荷可以是系统事先不知道的任何任务或工作单元,包括动态的、临时的或者引起处理器的工作负荷中的未预料到的高峰(spike)的任何工作单元。举例而言,瞬态工作负荷可以包括响应于用户输入、系统事件、检测到的环境状况、远程过程呼叫等等,由处理器执行的任何或所有任务。举另一个例子,瞬态工作负荷可以是在用户触摸便携式计算设 备(PCD)的触摸屏以发起用户动作时生成的,PCD必须立即对其进行响应(例如,用界面更新、通过显示新的图片、启动新动作等等)。
如上文所提及的,瞬态工作负荷不是DCVS解决方案能够提前适当考虑的(例如,作为确定上限阈值和下限阈值的一部分)连续的稳定状态工作负荷。因此,瞬态工作负荷可能使处理器在繁忙状态保持比预期更长的时间,和/或以其它方式造成处理器执行时间的不确定性。这样的不确定性可能使得计算设备无效率地或不适当地分配处理和系统资源,并且可能对计算设备的整体性能和/或响应度有显著影响,尤其是在计算设备包括多个处理内核时。
现代计算设备通常是多处理器系统,其包括片上系统(SoC)和/或多处理内核(例如,处理器、内核等等)。在多处理器系统中,单线程由第一处理内核处理,然后由第二处理内核处理,然后再由第一处理内核处理是很常见的。第一处理内核中的一个线程的结果触发在第二处理内核中执行的另一个线程中的操作也是很常见的。例如,一个或多个处理内核可以依赖于当前活动的处理器生成的结果,并且可能被要求保持在空闲或等待状态,直到当前活动处理器完成其工作负荷和/或完成处理一个或多个任务。在这些情况中,每个处理内核可以在其等待来自当前活动处理器的处理结果时,替代地进入空闲/等待状态。在这些处理内核等待当前活动处理器生成的结果时,它们各自的DCVS解决方案可以降低它们的工作速度(即,经由频率/电压的降低),使得计算设备显得无响应或速度慢。也就是说,多处理器计算设备上实现的DCVS解决方案可能不正确地推断出:处理内核中的一些处理内核应该以较低的频率或电压(其低于针对运行当前活动的线程来优化的频率或电压)进行操作,并且使得计算设备显得无响应或速度慢。
各个方面通过计算并强制执行性能保证来克服上述局限,其保证处理器内核不会在繁忙状态(例如,由于瞬态工作负荷造成的)保持比预定时间量更长的时间,该预定时间量是处理内核完成其预先计算的稳定状态工作负荷所要求的时间量。这样的性能保证可以由操作系统、资源、DCVS解决方案和/或其它处理内核用于更好地估计、调度和/或计划将来的操作,例如分配资源和对用于执行的线程进行调度。通过这种方式,该性能保证 能够使计算设备满足其响应度要求,并且从而改善用户体验。
性能保证允许DCVS解决方案基于可变延迟来调整处理器的频率和/或电压,其确保不管处理器的当前或先前的工作频率/电压如何,处理内核只比其稳定状态工作负荷落后最多定义的最大工作量。
图10描绘了一个方面计算设备1000中的逻辑部件和信息流,该计算设备实现强制执行性能保证的动态时钟频率/电压调节(DCVS)解决方案。该计算设备1000可以包括硬件单元1002、内核空间软件单元1004和用户空间软件单元1006。在一个方面,内核空间软件单元1004和用户空间软件单元1006可以被包括在操作系统或计算设备1000的内核中。例如,计算设备可以包括被组织到用户空间(非经特许的代码在这里运行)和内核空间(经特许的代码在这里运行)中。这样的分离在安卓和其它通用公共许可(GPL)环境中尤其重要,其中在所述GPL环境中作为内核空间的一部分的代码必须是GPL许可的,而运行在用户空间中的代码不需要是GPL许可的。
硬件单元1002可以包括多个处理内核(例如,CPU 0、CPU 1、2D-GPU 0、2D-GPU 1、3D-GPU 0等等)以及资源模块1020,该资源模块1020包括处理内核共享的各种硬件资源(例如,时钟、功率管理集成电路或“PMIC”、高速暂存存储器或“SPM”等等)。
内核空间软件单元1004可以包括对应于硬件单元1002中的处理内核中的至少一个处理内核的处理器模块(CPU_0空闲状态、CPU_1空闲状态、2D-GPU_0驱动、2D-GPU_1驱动、3D-GPU_0驱动等等),这些模块中的每个模块可以与一个或多个空闲状态设备模块1008通信。该内核空间软件单元1004还可以包括定时器驱动模块1014、输入事件模块1010和CPU请求状态模块1012。在一个方面,定时器驱动模块1014可以驱动(或维持)每个处理内核的定时器。
用户空间软件单元1006可以包括DCVS控制模块416,其被配置为从空闲状态设备模块1008、输入事件模块1010、定时器驱动模块1014和CPU请求状态模块1012接收输入,和/或向CPU频率热插拔模块1018发送输出。该CPU频率热插拔模块1018可以被配置为向资源模块1020发送通信信号。该CPU频率热插拔模块1018还可以被配置为单独地(例如,一次一个、连续地等等)或同时地(例如,在几乎相同的时间点)向每个内核应用电压/频率变化。
DCVS控制模块1016可以包括适合于在任何或所有处理内核(例如,CPU 0、CPU 1、2D-GPU 0、2D-GPU 1、3D-GPU 0等等)上执行的和/或适合于在计算设备1000上实现DCVS解决方案的线程。在一个方面,DCVS控制模块1016可以包括对端口或套接字进行监控的线程,其监控使得DCVS控制模块1016从一个或多个处理内核收集信息并在处理内核上执行DCVS操作的事件(例如,数据缓存器填满、定时器期满、状态转换等等)的发生。在一个方面,DCVS控制模块1016可以包括单线程的DCVS解决方案,其监控两个或更多个处理内核。在一个方面,DCVS控制模块1016可以包括针对每个处理内核的DCVS解决方案线程。
在一个方面,DCVS控制模块1016可以被配置为生成脉冲序列。DCVS控制模块1016可以通过对处理内核的繁忙和/或空闲状态(或状态之间的转换)进行监控或抽样,来生成该脉冲序列。DCVS控制模块1016还可以基于从对一个或多个处理器运行队列的深度进行监控所获取的信息,来生成脉冲序列。运行队列可以包括运行线程以及能够在处理内核上运行但是还没来得及运行(例如,由于当前在运行的另一个活动线程等等)的一个或多个线程的集合。每个处理内核可以有它自己的运行队列,或者单个运行队列可以被多个处理内核共享。当线程请求进入休眠状态、在等待资源变得可用或已经终止时,可以将其从运行队列移除。因此,该运行队列中的线程数量(即,运行队列深度)可以识别包括当前正在处理的(运行的)线程的活动线程(例如,在等待的、在运行的)和等待被处理的线程的数量。
在一个方面,DCVS控制模块1016可以被配置为基于生成的脉冲序列来计算稳定状态工作负荷、稳定状态要求和/或上限频率/电压阈值和下限频率/电压阈值。上限频率/电压阈值和下限频率/电压阈值可以定义频率/电压范围,在该范围内处理内核可以操作为满足其稳定状态性能要求,而同时实现降低的功率开销并满足计算设备1000的响应度要求。满足响应度要求可以包括执行工作负荷中的所有任务,这样计算设备1000的用户不会注意到该计算设备的性能或速度的降低。
DCVS控制模块1016可以被配置为监控整体计算设备1000性能和/或确保处理内核中的一个或多个处理内核在确立的上限频率阈值和下限频率阈值之间操作。该DCVS控制模块1016可以调整处理内核的处理资源和/或工作频率,从而它们与阈值相当。
如上文所讨论,DCVS控制模块1016可以生成脉冲序列。在一个方面,为处理内核中的两个或多个处理内核生成的脉冲序列可以在时间上同步,并且交叉相关以生成关联模型,其包括适合于确定处理内核是否执行协作式和/或相互依赖的操作的信息。在一个方面,DCVS控制模块1016可以使用该关联模型来确定上限频率阈值和下限频率阈值、初始工作频率、稳定状态要求和处理器工作负荷,从而这些值考虑处理内核之间的相互依赖性。
在一个方面,DCVS控制模块1016可以被配置为计算和/或强制执行性能保证。如上文所述,处理内核可以被要求处理/执行DCVS解决方案无法适当提前考虑的瞬态工作负荷。因此,瞬态工作负荷可以使DCVS控制模块1016以次优化频率等级或在次优化频率范围内操作处理内核中的一个或多个处理内核。例如,由于DCVS控制模块1016无法提前考虑这些瞬态工作负荷,因此它可能不正确地推断出:处理内核可以操作在较低的频率水平,该较低的频率水平是在适用于满足计算设备1000的响应度要求的时间段内,完成稳定状态工作负荷和瞬态工作负荷二者所需要的频率水平。
性能保证向计算设备1000提供严格的且可计算的界限,该保证可以由DCVS控制模块1016用于确保处理内核不会在繁忙状态保持与预定时间/工作量相比要多的时间/工作量(例如,由于瞬态工作负荷),在此时间段上该预定时间/工作量是处理内核完成其稳定状态工作负荷要求所需要的时间/工作量。性能保证允许DCVS控制模块1016确保处理内核在适用于满足该计算设备1000的响应度要求的时间段内同时完成其稳定状态工作负荷和其瞬态工作负荷。
在各个方面,性能保证可以用任何测量单位计算、定义和/或包括任何测量单位,该测量单位适用于测量处理器性能或持续时间,例如时间量、工作量、任务数量、指令数量、CPU周期数量等等。在各个方面,性能保证可以与频率相关联和/或可以是频率的函数。
在一个方面,性能保证可以包括一个或多个性能保证值。在各个方面, 该性能保证值(例如,最后期限值、预算值、跳跃到最大值(jump-to-max value)等等)可以用任何适用于测量处理器性能或持续时间(例如时间量、工作量、任务数量、指令数量、CPU周期数量等等)的测量单位来表示。
在各个方面,该性能保证值可以包括预算值(例如,松弛预算、瞬态预算等)、最后期限值(例如,瞬态最后期限、瞬态响应最后期限、性能最后期限等等)和/或跳跃到最大值。
该最后期限值可以是用于指示处理器内核完成其工作负荷处理之前的相对时间的值和/或用于指示在其后处理内核的频率要被增加的相对时间的值。
该预算值可以是用于指示处理内核要完成其工作负荷处理之前的剩余的和/或在其后处理器内核的频率要被增加的时间量。
跳跃到最大值可以是用于指示处理器内核要完成其工作负荷处理之前和/或在其后处理器内核的频率要被增加到最大频率的相对时间的值。
该性能保证值可以是与频率或电压相关的、相关联的和/或是其函数。例如,预算、最后期限和/或跳跃到最大值的每一个可以是根据相应的处理内核的工作频率计算出的时间值。因此,当处理内核以100MHz的频率工作时,这些值中的每一个可以是10毫秒,以200MHz的频率工作时为20毫秒,以400MHz的频率工作时为40毫秒等等。以这种方式,该性能保证值可以由DCVS解决方案用于实现增加处理内核的频率的可变的延迟。
如上文所述以及图9中所描绘的,DCVS解决方案可以实现可变的延迟。这样的可变的延迟确保不管处理内核的实际工作频率如何,该处理内核只落后其稳定状态工作负荷最多定义的最大工作量。在一个方面,DCVS解决方案可以将定义的最大工作量(即,处理内核可以落后于其稳定状态工作负荷的量)设置为等于最后期限值乘以该处理内核的最大频率/电压。通过这种方式,性能保证不受DCVS解决方案基于稳定状态要求或动态地或“联机”地来调整该处理内核的频率/电压的影响。
在一个方面,该DCVS控制模块1016可以被配置为每次相应的处理内核从空闲转换到繁忙、进入繁忙状态(例如,在处理工作负荷等)和/或退出空闲状态(例如,当空闲线程让出处理内核等)时,将最后期限值设置为等于该预算值。
在一个方面,DCVS控制模块1016可以被配置为每次相应的处理内核从繁忙转换到空闲、进入空闲状态(例如,在执行空闲线程等)和/或退出繁忙状态(例如,完成工作负荷中的所有任务等)时,设置或重置现有最后期限值。
图11A-B描绘了用于生成/计算性能保证的一个方面DCVS解决方案方法1100,其确保处理内核不会在繁忙状态(例如,由于瞬态工作负荷等)保持多于预定时间量的时间,在此时间段上该预定时间量是处理内核完成其预先计算的、预测的和/或实际的稳定状态工作负荷所需要的时间。在各个方面,DCVS解决方案的工作可以由该处理内核或另一个处理内核上执行的线程来执行。在一个方面,DCVS解决方案的一个或多个操作可以由处理内核上执行的空闲线程来执行。
在方框1102中,DCVS解决方案可以使处理内核从空闲状态转换到繁忙状态。在方框1104中,DCVS解决方案可以将结束空闲时间参数(EndIdleTime)的值设置为等于当前时间值(CurrentTime)。因此,该结束空闲时间参数(EndIdleTime)可以存储用于指示该处理内核上一次退出空闲状态的时间。
在各个方面,方框1102和1104的操作可以顺序地、并行地和/或以任何顺序执行。例如,在一个方面,该DCVS解决方案可以在处理内核从空闲转换到繁忙之前设置结束空闲时间参数(EndIdleTime)的值。在另一个方面,DCVS解决方案可以在处理内核从空闲转换到繁忙之后设置结束空闲时间参数(EndIdleTime)的值。
在方框1106中,DCVS解决方案可以监控处理内核的工作频率或电压,并且根据需要做出调整。在方框1108中,该DCVS解决方案可以使得处理内核从繁忙状态转换到空闲状态。在一个方面,DCVS解决方案可以通过在处理内核上开始执行空闲线程,来将该处理内核转换到空闲状态。在一个方面,DCVS解决方案可以在处理内核完成其所有工作负荷相关联的所有任务之后将处理内核转换到空闲状态。
在可选方框1110中,DCVS解决方案可以设置或重置现有的最后期限值。如上文所讨论,最后期限值可以是包括在性能保证中或与之相关联的性能保证值。下面还将提供关于设置、重置和/或计算该最后期限值的操作 的额外的细节。
在方框1112中,DCVS解决方案可以将开始空闲时间参数(StartIdleTime)的值设置为等于当前时间值(CurrentTime)。在方框1114中,DCVS解决方案可以将繁忙时间参数(BusyTime)的值设置为等于处理内核上一次退出先前的空闲状态时的时间(可以由结束空闲时间参数“EndIdleTime”表示)和处理内核进入当前空闲状态时的时间(可以由开始空闲时间参数“StartIdleTime”)之间的差值。因此,繁忙时间参数(BusyTime)可以存储用于指示处理内核最近保持在繁忙状态的持续时间的值。
在方框1116中,DCVS解决方案可以使处理内核执行各种空闲状态操作,例如休眠操作、深度休眠操作或软件等待中断操作。因此,在方框1116中,DCVS解决方案(例如,经由空闲线程、操作系统等)可以使处理内核进入休眠状态、深度休眠状态、等待中断状态等等。
在方框1118中,DCVS解决方案和/或空闲线程可以接收中断请求和/或以其它方式确定该处理内核要从其当前状态转换到繁忙状态。这可以通过DCVS解决方案接收关于以下内容的通知(例如,从操作系统调度器、控制器等)来实现:任务已经被调度在该处理内核上执行和/或被调度的任务已经准备好执行。
在方框1120中,DCVS解决方案可以将结束空闲时间参数(EndIdleTime)设置为等于当前时间值(CurrentTime)。在方框1122中,DCVS解决方案可以将空闲时间参数(IdleTime)设置为等于StartIdleTime参数的值和EndIdleTime参数的值之差。因此,该空闲时间参数(IdleTime)可以存储用于指示该处理内核最后保持空闲状态的持续时间的值。
在方框1124中,DCVS解决方案可以计算处理内核要在其中操作的工作频率、频率范围和/或频率阈值。在一个方面,DCVS解决方案可以基于处理内核上一次保持在繁忙状态的持续时间(例如,BusyTime)和/或处理内核上一次保持在空闲状态的持续时间(例如,IdleTime),来计算该频率或频率范围。在一个方面,该DCVS解决方案可以基于历史信息,例如处理器先前保持在繁忙和/或空闲状态(例如,在预定的时间段或时间窗口上)的持续时间的平均值(或移动的平均值),来计算该工作频率、频率范围和 /或频率阈值。在一个方面,DCVS解决方案可以基于脉冲序列来计算工作频率、频率范围和/或频率阈值。如上文所讨论,脉冲序列可以基于繁忙和/或空闲状态的抽样、状态之间的转换、运行队列的深度等来生成。
在方框1126中,DCVS解决方案可以计算或选择最后期限值。该最后期限值可以是用于指示在其后处理内核的频率要被设置为增加到下一更高频率步长或者最大频率的相对时间的值。在各个方面,可以基于配置设置、驱动输入、调度的任务的数量和/或类型、预测的稳定状态工作负荷和/或计算设备的响应度要求,来计算该最后期限值。该最后期限值可以是基于静态的和/或动态的值来确定。例如,该最后期限值可以基于静态的配置值,或基于被调度为要在该处理内核上执行的任务的类型(例如,流式1080p视频对流式720p视频等)来确定。
在一个方面,该最后期限值可以与计算设备的响应度要求成反比(即,响应度要求越高,最后期限越短)。在一个方面,该最后期限值可以是时间值,该时间值是处理内核的当前工作频率的函数(例如,在100MHz频率处10毫秒、200MHz频率处20毫秒、400MHz频率处40毫秒等等)。
在方框1128中,DCVS解决方案可以计算或选择预算值。该预算值可以是用于指示时间量的值,在该时间量内处理内核可以保持在活动或繁忙状态而不超过最后期限值和被确定为该处理内核完成其稳定状态工作负荷要求所需要的时间之和。在一个方面,该预算值可以是时间值,该时间值是处理内核的当前工作频率的函数(例如,在100MHz频率处10毫秒、200MHz频率处20毫秒、400MHz频率处40毫秒等等)。
在各个方面,该预算值可以基于最后期限值、多个频率水平或步长、最大处理器频率、稳定状态处理器频率等等来计算。在一个方面,该预算值可以是有效瞬态预算和/或经由上面讨论的任何公式计算出的。
在可选方框1130中,DCVS解决方案可以计算跳跃到最大值。该跳跃到最大值可以是用于指示在其后处理内核的频率要被设置为最大处理频率的相对时间的值。在一个方面,该跳跃到最大值可以通过对EndIdleTime参数的值和预算值求和来计算。
在方框1132中,DCVS解决方案可以将处理内核从空闲状态转换到繁忙状态。在一个方面,作为方框1132的一部分,DCVS解决方案可以将最 后期限值设置为等于预算值。在各个方面,DCVS解决方案可以被配置为每次处理内核从空闲转换为繁忙、进入活动或繁忙状态(例如,开始处理工作负荷等)和/或退出空闲状态(例如,当空闲线程让出处理内核时),将最后期限值设置为等于预算值。
图12描绘强制执行性能保证以确保处理内核不会在繁忙状态保持比预定时间量要多的时间的一个方面DCVS解决方案方法1200(例如,由于瞬态工作负荷的存在,等等),在此时间段上该预定时间量是该处理内核完成其预先计算的、预测的和/或实际的稳定状态工作负荷所需要的时间。在方框1202中,DCVS解决方案可以基于被调度的任务来计算预测的稳定状态工作负荷。在方框1204中,DCVS解决方案可以计算处理内核用于满足该计算设备的功率消耗和/或响应度要求的各种性能要求(例如频率阈值)。该性能要求(例如,频率阈值等)可以基于稳定状态工作负荷、历史信息(例如,先前在繁忙状态中花费的时间量等)、处理器特性、响应度要求等来确定。
在方框1206中,DCVS解决方案可以计算并设置初始工作频率和/或各种性能保证值(例如,最后期限值、预算值、跳跃到最大值等等)。在方框1208中,DCVS解决方案可以计算处理内核完成稳定状态工作负荷中的所有任务同时满足各个性能要求所需要的时间或工作量(例如,CPU周期、指令等)。
在方框1210中,DCVS解决方案可以将处理内核从空闲状态转换到繁忙状态,从而处理内核以计算出的初始工作频率/电压(或在计算出的阈值内)运行和/或满足各种设备或系统要求。在方框1212中,DCVS解决方案可以监控处理内核的实际工作负荷和/或工作频率,并根据需要来调整频率/电压(例如,依照默认时钟和电压调节算法)。在可选方框1214中,DCVS解决方案可以基于处理内核的当前工作频率/电压来更新性能保证值。
在判定方框1216中,DCVS解决方案可以确定处理内核是否已经在繁忙状态中保持了比计算出的时间/工作要长的时间(即,被确定为处理内核完成预测的稳定状态工作负荷中的所有任务所需要的时间/工作量)。当DCVS解决方案确定处理内核没有在繁忙状态中保持比计算出的时间/工作要长的时间(即,判定步骤1216=“否”)时,在方框1212中,DCVS解决 方案可以继续监控实际的工作负荷/频率,并在必要时做出调整。
当DCVS解决方案确定处理内核已经在繁忙状态保持了比计算出的时间/工作要长的持续时间(即,判定步骤1216=“是”)时,在判定方框1218中,DCVS解决方案可以确定是否已经耗尽预算。该DCVS解决方案可以确定:当预算值等于零时和/或当处理内核已经在繁忙状态保持了大于或等于最后期限值加上计算出的时间/工作的持续时间(以时间或工作测量)时,预算已经耗尽。
当DCVS解决方案确定预算还没有耗尽(即,判定步骤1218=“否”),在方框1212中,DCVS解决方案可以继续监控实际的工作负荷/频率,并根据需要做出调整。当DCVS解决方案确定该预算已经耗尽(即,判定步骤1218=“是”)时,在方框1220中,DCVS解决方案可以增加处理内核的工作频率/电压。在一个方面,该DCVS解决方案可以在方框1220中将处理内核的工作频率/电压增加到最大处理器频率。在一个方面,DCVS解决方案可以在方框1220中增加工作频率/电压阈值。在一个方面,在方框1220中,DCVS解决方案可以逐步地增加处理内核的工作频率/电压。
图13描绘了用于强制执行性能保证的另一个方面DCVS解决方案方法1300。在方框1302-1314中,DCVS解决方案可以执行与如上文关于图12的方框1202-1214讨论的操作相同或相似的操作。在判定方框1316中,DCVS解决方案可以确定是否有很高的可能性出现处理内核将在计算出的时间(即,被确定为该处理内核完成预测的稳定状态工作负荷中的所有任务所需要的时间量)加上最后期限值(计算出的时间+最后期限)之前完成其当前工作负荷。
当DCVS解决方案确定有很高的可能性出现处理内核将在计算出的时间机上最后期限值之前完成其当前工作负荷(即,判定步骤1316=“是”)时,在方框1312中,DCVS解决方案可以继续监控实际工作负荷/频率,并根据需要对工作频率/电压做出调整。
当DCVS解决方案确定没有很高的可能性出现该处理内核将在计算出的时间加上最后期限值之前完成其当前工作负荷(即,判定步骤1316=“否”)时,在方框1318中,DCVS解决方案可以增加处理内核的工作频率/电压。该处理内核的工作频率/电压可以被增加到最大处理器频率或被逐步地增 加。
各个方面包括改善具有处理器的计算设备上的性能的方法,该方法可以包括确定处理器的稳定状态工作负荷,确定执行该处理器上确定的稳定状态工作负荷所需要的工作量,计算该处理器的性能保证值,将该处理器从空闲状态转换到繁忙状态,基于处理器的实际工作负荷来执行动态时钟和电压调节操作以调节该处理器的频率,基于经调节的频率来更新该性能保证值,确定该处理器是否已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间,以及当确定该处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加处理器的频率。
在一个方面,当确定处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加处理器的频率可以包括将处理器频率增加到最大处理器频率。在其它方面,当确定处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加处理器的频率可以包括逐步地增加处理器的频率。在其它方面,该方法还可以包括反复地执行以下操作:基于经调节的频率来更新性能保证值,确定处理器是否已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间,以及当确定处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加处理器的频率。
在其它方面,计算处理器的性能保证值可以包括计算最后期限值。在其它方面,计算处理器的性能保证值可以包括计算预算值。在其它方面,确定处理器的稳定状态工作负荷可以包括确定调度的在该处理器上执行的任务的要求。在其它方面,该方法可以包括通过抽样所述繁忙和空闲状态之间的转换来生成脉冲序列。在其它方面,确定处理器的稳定状态工作负荷、确定在处理器上执行稳定状态工作负荷所需要的工作量,以及计算处理器的性能保证值的操作可以由单线程来执行。在其它方面,所述单线程在处理器上执行。在其它方面,所述单线程在计算设备的第二处理器上执行。
其它方面包括一种计算设备,其具有用于确定处理器的稳定状态工作 负荷的单元,用于确定执行处理器上确定的稳定状态工作负荷所需要的工作量的单元,用于计算处理器的性能保证值的单元,用于将处理器从空闲状态转换到繁忙状态的单元,用于基于处理器的实际工作负荷来执行动态时钟和电压调节操作以调节处理器的频率的单元,用于基于经调节的频率来更新性能保证值的单元,用于确定所述处理器是否在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间的单元,以及用于在确定处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加所述处理器的频率的单元。
在一个方面,用于当确定所述处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加处理器的频率的单元可以包括:用于将所述处理器的频率增加到最大处理器频率的单元。
在其它方面,用于当确定处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加处理器的频率的单元可以包括:用于逐步地增加处理器的频率的单元。在其它方面,所述计算设备还包括用于反复地执行以下操作的单元:基于经调节的频率来更新性能保证值,确定处理器是否已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间,以及当确定处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加处理器的频率。
在一个其它方面,用于计算处理器的性能保证值的单元包括用于计算最后期限值的单元。在一个其它方面,用于计算处理器的性能保证值的单元包括用于计算预算值的单元。在一个其它方面,用于确定处理器的稳定状态工作负荷的单元可以包括用于确定被调度为在处理器上执行的任务的要求的单元。在一个其它方面,计算设备可以包括用于通过抽样所述繁忙和空闲状态之间的转换来生成脉冲序列的单元。
在一个其它方面,计算设备可以包括用于经由单线程来完成确定处理器的稳定状态工作负荷,确定在处理器上执行稳定状态工作负荷所需要的工作量,以及计算处理器的性能保证值的操作的单元。在一个其它方面,计算设备可以包括用于在处理器上执行单线程的单元。在一个其它方面,计算设备可以包括用于在计算设备的第二处理器上执行单线程的单元。
其它方面包括一种计算设备,其可以包括配置有处理器可执行指令以执行操作的处理器,其可以包括第一处理器,其配置有处理器可执行指令以执行包括以下各项的操作:确定第二处理器的稳定状态工作负荷,确定在第二处理器上执行确定的稳定状态工作负荷所需要的工作量,计算第二处理器的性能保证值,将第二处理器从空闲状态转换到繁忙状态,基于第二处理器的实际工作负荷来执行动态时钟和电压调节操作,以调节第二处理器的频率,基于经调节的频率来更新性能保证值,确定第二处理器是否已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间,以及当确定第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率。
在一个方面,第一处理器可以配置有处理器可执行指令,以使得当确定第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率可以包括:将第二处理器频率增加到最大处理器频率。
在一个其它方面,第一处理器可以配置有处理器可执行指令,以使得当确定第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率可以包括:逐渐地增加第二处理器的频率。
在一个其它方面,第一处理器还可以配置有处理器可执行指令,以反复地执行以下操作:基于经调节的频率来更新性能保证值,确定第二处理器是否在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间,以及当确定第二处理器已经繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率。在一个其它方面,第一处理器可以配置有处理器可执行指令,以使得计算第二处理器的性能保证值可以包括计算最后期限值。
在一个其它方面,第一处理器可以配置有处理器可执行指令,以使得计算第二处理器的性能保证值可以包括计算预算值。在一个其它方面,第一处理器可以配置有处理器可执行指令配置,以使得确定第二处理器的稳定状态工作负荷包括确定被调度为在第二处理器上执行的任务的要求。在一个其它方面,第一处理器可以配置有处理器可执行指令配置,以执行还 包括以下项的操作:通过抽样所述繁忙和空闲状态之间的转换来生成脉冲序列。
在一个其它方面,第一处理器可以配置有处理器可执行指令,以使得以下操作由单线程来执行:确定第二处理器的稳定状态工作负荷,确定在第二处理器上执行稳定状态工作负荷所需要的工作量,以及计算第二处理器的性能保证值。在一个其它方面,第一处理器可以配置有处理器可执行指令,以使得单线程可以在第一处理器上执行。在一个其它方面,第一处理器可以配置有处理器可执行指令配置,以使得完成以下各项的操作可以包括在第二处理器上执行单线程:确定第二处理器的稳定状态工作负荷,确定在第二处理器上执行稳定状态工作负荷所需要的工作量,以及计算第二处理器的性能保证值。
其它方面包括一种非暂时性服务器可读存储介质,其上存储有处理器可执行指令,所述处理器可执行指令被配置为使计算设备执行操作,所述操作可以包括:确定第二处理器的稳定状态工作负荷,确定在第二处理器上执行所确定的稳定状态工作负荷所需要的工作量,计算第二处理器的性能保证值,将第二处理器从空闲状态转换到繁忙状态,基于第二处理器的实际工作负荷来执行动态时钟和电压调节操作,以调节第二处理器的频率,基于经调节的频率来更新性能保证值,确定第二处理器是否已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间,以及当确定第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率。
在一个方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,以使得当确定第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率可以包括:将第二处理器频率增加到最大处理器频率。
在一个其它方面,所存储的处理器可执行软件指令可以被配置为使得第二处理器执行操作,以使得当确定所述第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率可以包括逐渐地增加第二处理器的频率,以及反复地执行以下操作:基于经调节的频率来更新性能保证值,确定第二处理器是否已经 在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间,以及当确定第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和性能保证值之和的一段时间时,增加第二处理器的频率。
在一个其它方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,以使得计算第二处理器的性能保证值可以包括计算最后期限值。在一个其它方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,以使得计算第二处理器的性能保证值可以包括计算预算值。在一个其它方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,以使得确定第二处理器的稳定状态工作负荷可以包括确定被调度为在第二处理器上执行的任务的要求。在一个其它方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,所述操作包括通过抽样所述繁忙和空闲状态之间的转换来生成脉冲序列。
在一个其它方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,以使得以下操作由单线程来执行:确定第二处理器的稳定状态工作负荷、确定在第二处理器上执行稳定状态工作负荷所需要的工作量,以及计算第二处理器的性能保证值。在一个其它方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,以使得单线程在处理器上执行。在一个其它方面,所存储的处理器可执行软件指令可以被配置为使处理器执行操作,以使得单线程在第二处理器上执行。
各个方面提供了很多益处,并且可以实现在笔记本膝上型计算机和其它移动设备中,在这些设备中性能、功耗和/或响应度是很重要的。各个方面可以实现在服务器和个人计算机中,以降低低负荷机器的能量和冷却开销。降低热量输出允许系统冷却风扇减低速度或关闭,降低噪声水平,以及进一步减少功耗。各个方面还可以用于在温度达到某个阈值时,降低不够冷却的系统中的热度。
虽然上面出于说明性的目的围绕着处理内核描述了各个方面,但是各方面方法、系统和可执行指令可以实现在这些方法在其中能够识别并控制频率或电压的任何系统中。此外,调节频率或电压的操作可以在任何单处理器或多处理器系统上执行。
各个方面可以实现在不同的便携式或移动式计算设备中,图14中描绘 了一个示例。该便携式计算设备1400可以包括耦合到存储器1402和收发机1405的处理内核1401。收发机1405可以耦合到用于发送和接收电磁辐射的天线1404。该便携式计算设备1400还可以包括用于接收用户输入的显示器1403(例如,触摸屏显示器)和菜单选择按钮或摇杆开关1406。在一些便携式计算设备中,可以提供多个处理器1401,例如一个处理器专用于无线通信功能,一个处理器专用于运行其它应用。
各个方面还可以实现在不同商业用途服务器设备的任何一个上,例如图15中描绘的服务器1500。这样的服务器1500通常包括处理内核1501,并且可以包括多个处理器系统1511、1521、1531,它们中的一个或多个可以是或包括多核处理器。处理内核1501可以耦合到易失性存储器1502和大容量非易失性存储器,例如硬盘驱动器1503。该服务器1500还可以包括耦合到处理内核1501的软盘驱动器、压缩光盘(CD)或DVD光盘驱动器1506。该服务器1500还可以包括耦合到处理内核1501的网络访问端口1504,用于与网络1505建立数据连接,例如耦合到其它广播系统计算机和服务器的局域网。
上面描述的方面还可以实现在不同个人计算设备中,例如图16中描绘的膝上型计算机1600。膝上型计算机1600可以包括耦合到易失性存储器1602和大容量非易失性存储器(例如闪存的磁盘驱动器1604)的处理内核1601。计算机1600还可以包括耦合到处理内核1601的软盘驱动器1606和压缩光盘(CD)驱动器1608。该计算机设备1600还可以包括耦合到处理内核1601的多个连接器端口,用于建立数据连接或接收外部存储设备,例如USB、或连接器插口或其它网络连接电路,用于将处理内核1601耦合到网络或计算机。在笔记本电脑配置中,计算机外壳包括全部耦合到处理内核1601的触摸板1616、键盘1618和显示器1620。计算设备的其它配置可以包括众所周知的耦合到处理器(例如,经由USB输入)的计算机鼠标或轨迹球。
处理内核1401、1501、1601可以是任何可编程处理器、微处理器、微型计算机、多核处理器或多处理器芯片,其可以由软件指令(应用)来配置以执行多种功能,包括本文描述的各个方面的功能和操作。通常,软件应用在被存取并加载到处理内核1401、1501、1601中之前可以被存储在内 部存储器1402、1502、1602中。每个处理内核1401、1501、1601可以包括足够存储应用软件指令的内部存储器。在一些计算设备中,另外的存储器芯片(例如,安全数据(SD)卡)可以被插入计算设备并耦合到处理内核1401、1501、1601。该内部存储器1402、1502、1602可以是易失性或非易失性存储器,例如闪存或二者的混合。出于本说明书的目的,对存储器的一般引用指的是处理内核1401、1501、1601可访问的所有存储器,包括内部存储器1402、插入到移动设备中的可移除存储器和处理内核1401中的存储器。
处理内核1401、1501、1610可以包括足够存储应用软件指令的内部存储器。在很多设备中,该内部存储器可以是易失性或非易失性存储器,例如闪存或它们二者的混合。出于本说明书的目的,对存储器的一般引用指的是可以由处理器1401、1501、1610访问的存储器,包括处理内核1401、1501、1610本身中的内部存储器或插入到设备中的可移除存储器以及存储器。
针对单处理CPU所设计的性能保证,通常并不考虑在多个CPU之间的线程迁移。因此,当操作系统调度器将线程从一个CPU迁移到另一个CPU时,在下一个CPU上可能重新启动瞬态定时器,其可能造成非期望的性能下降。因此,在利用每一个核性能保证(例如,瞬态最后期限)来实现DCVS解决方案的多核处理器系统中,该DCVS解决方案可能没有考虑操作系统调度器将线程从一个内核移动到另一个内核,其中在该情况下,可能没有达到/命中瞬态最后期限值(当意图这样时)。这可能造成系统不能适当地或充分地提升性能水平(例如,CPU频率、频率阈值等等),其可能造成系统不能足够地满足其性能要求(例如,计算设备的功耗和/或响应度要求等等)。
各个方面可以包括使用内核组中的瞬态最后期限的系统、设备和方法,使得当调度器在该组中的内核之间移动线程时,不会影响瞬态最后期限的触发。在这些方面,尽管将工作负荷从第一处理内核(例如,CPU0)移动到第二处理内核(例如,CPU1),但仍然超过瞬态最后期限,将提升该组中的所有CPU的性能水平,以便满足性能要求。结果,这些方面有助于确保在多处理器系统中维持明确定义的瞬态QoS,即使当操作系统调度器在处理内核之间迁移线程时。
图17示出了针对在多核系统中执行的线程或工作负荷1702,设置每个核的性能保证(例如,瞬态最后期限)的示例性DCVS解决方案方法1700。在图17所示出的例子中,当工作负荷1702开始在第一处理内核(CPU0)中执行时,在第一处理内核(CPU0)上向其分配20ms瞬态最后期限1704。这可以通过下面方式来完成:设置与第一处理内核(CPU0)相关联的瞬态定时器,以便在工作负荷1702开始执行之后20ms期满,或者在20ms的总执行时间之后期满。
在总执行时间的10ms之后,操作系统调度器将工作负荷1702从第一处理内核(CPU0)迁移到第二处理内核(CPU1),在第二处理内核(CPU1)上向工作负荷1702分配新的20ms瞬态最后期限1706。这可以通过下面方式来完成:设置与第二处理内核(CPU1)相关联的瞬态定时器,以便在工作负荷1702转移到第二处理内核(CPU1)之后20ms期满,或者在30ms的总执行时间之后期满。
由于图17中所示出的DCVS解决方案针对每一个内核,单独地设置了性能保证(例如,瞬态最后期限)(即,该解决方案使用每一个内核的性能保证),因此在20ms的总执行时间(如最初针对工作负荷1702所意图的)之后,工作负荷1702没有到达或者命中瞬态最后期限。结果,该DCVS解决方案可能没有适当地或充分地提升处理内核(例如,CPU1)的性能水平(例如,CPU频率),其可能造成系统不能足够地满足其性能或功耗要求。
图18示出了针对在多核系统中执行的线程或工作负荷1702,设置基于组的性能保证的一方面DCVS解决方案方法1800。在图17所示出的例子中,当工作负荷1702开始在第一处理内核(CPU0)中执行时,向工作负荷1702分配针对包括第一处理内核和第二处理内核(CPU0和CPU1)的处理组的20ms瞬态最后期限1804。这可以通过下面方式来完成:设置与第一和第二处理内核(CPU0和CPU1)二者相关联的瞬态定时器,以便在工作负荷1702开始执行之后20ms期满,或者在20ms的总执行时间之后期满。当操作系统调度器将工作负荷1702从第一处理内核(CPU0)转移到第二处理内核(CPU1)时,该工作负荷1702仍然受到针对该组所设置的20ms瞬态最后期限的限制。
图19示出了在多处理器系统中设置并强制执行基于组的性能保证的一 个方面DCVS解决方案方法1900。在方框1902中,DCVS解决方案可以基于被调度的任务来计算预测的稳定状态工作负荷。在方框1904中,DCVS解决方案可以计算处理内核用于满足该计算设备的功率消耗和/或响应度要求的各种性能要求(例如频率阈值)。该性能要求(例如,频率阈值等)可以基于稳定状态工作负荷、历史信息(例如,先前在繁忙状态中花费的时间量等)、处理器特性、响应度要求等来确定。
在方框1906中,该DCVS解决方案可以计算针对包括第一处理内核和第二处理内核的处理组的性能保证值(例如,最后期限值、预算值、跳跃到最大值等等)。在一个方面,在方框1906中,该DCVS解决方案可以计算针对第一处理内核的性能保证值,将计算出的值分配给包括第一处理内核和第二处理内核的组。在另一个方面,在方框1906中,该DCVS解决方案可以计算针对第一处理内核和第二处理内核的组合的性能保证值,将计算出的值分配给包括第一处理内核和第二处理内核的组。
在方框1908中,该DCVS解决方案可以计算第一处理内核完成稳定状态工作负荷中的所有任务同时满足各个性能要求所需要的时间或工作量(例如,CPU周期、指令等)。在方框1910中,该DCVS解决方案可以将第一处理内核从空闲状态转换到繁忙状态,从而第一处理内核以计算出的初始工作频率/电压(或在计算出的阈值内)运行和/或满足各种设备或系统要求。在方框1912中,该DCVS解决方案可以监控第一处理内核的实际工作负荷和/或工作频率,并根据需要来调整频率/电压(例如,依照默认时钟和电压调节算法)。在可选方框1914中,该DCVS解决方案可以基于第一处理内核的当前工作频率/电压来更新针对该组的性能保证值。
在判定方框1916中,该DCVS解决方案可以针对预测的稳定状态工作负荷或线程,确定第一处理内核和第二处理内核是否已经在繁忙状态中保持了大于或等于所确定的工作量(即,被确定为该处理内核完成预测的稳定状态工作负荷中的所有任务所需要的时间/工作量)和性能保证值之和的一组合时段。当该DCVS解决方案确定处理内核没有在繁忙状态中保持比计算出的时间/工作要长的时间(即,判定方框1916=“否”)时,则在方框1912中,该DCVS解决方案可以继续监控实际的工作负荷/频率,并在必要时做出调整。
当该DCVS解决方案确定第一处理器和第二处理器已经在繁忙状态(例如,针对预测的稳定状态工作负荷或线程)保持了大于或等于所确定的工作量和性能保证值之和的一组合时段时(即,判定步骤1916=“是”),则在方框1918中,该DCVS解决方案可以增加第一处理内核或第二处理内核的工作频率/电压。在各个方面,可以将第一处理内核或第二处理内核的工作频率/电压增加到最大处理器频率,或者进行逐渐地增加。
各个方面包括用于改善具有多个处理器的计算设备上的性能的方法,该方法包括:确定第一处理器的稳定状态工作负荷;确定在第一处理器上执行所确定的稳定状态工作负荷所需要的工作量;计算针对包括第一处理器和第二处理器的处理组的性能保证值;将第一处理器从空闲状态转换到繁忙状态;基于第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节第一处理器的频率;确定第一处理器和第二处理器是否已经在繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及当确定第一处理器和第二处理器已经在繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加第一处理器和第二处理器中的一个处理器的频率。
另外的方面可以包括具有一个或多个处理器的计算设备,其中所述一个或多个处理器配置有处理器可执行指令,以执行与上面所讨论的方法相对应的各种操作。
另外的方面可以包括一种计算设备,其中该计算设备具有用于执行与上面所讨论的方法操作相对应的功能的各种单元。
另外的方面可以包括一种非暂时性处理器可读存储介质,该非暂时性处理器可读存储介质具有存储在其上的处理器可执行指令,其中这些处理器可执行指令被配置为使处理器执行与上面所讨论的方法操作相对应的各种操作。
上述方法描述和处理流程图仅仅作为示例性示例提供,而并不旨在要求或暗示各个方面的步骤必须以示出的顺序执行。本领域的技术人员应该了解的是,上述方面中的步骤的顺序可以以任何顺序来执行。例如像“之后”、“然后”、“接下来”等词语并不旨在限制步骤的顺序;这些词语仅仅用于贯穿方法的描述来引导读者。此外,任何以单数形式对权利要求元素 的引用,例如使用冠词“一(a)”、“一个(an)”或“所述(the)”并不被解释为将该单元限制为单数。
结合本文公开的方面所描述的各种说明性的逻辑框、模块、电路和算法步骤可以实现成电子硬件、计算机软件或其组合。为了清楚地示出硬件和软件之间的可交换性,上面对各种说明性的组件、方框、模块、电路和步骤已经围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应被解释为背离本发明的保护范围。
被设计为执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,可以实现或执行用于实现结合本文公开的方面描述的各种说明性的逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是多处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器还可以实现为计算设备的组合,例如,DSP和多处理器的组合、多个多处理器、一个或多个多处理器与DSP内核的结合,或者任何其它此种结构。另外,一些步骤或方法可以由专用于给定功能的电路来执行。
在一个或多个示例性方面,所描述的功能可以用硬件、软件、固件,或其任意组合来实现。如果在软件中实现,则所述功能可以作为一条或多个处理器可执行指令或代码存储在非暂时性计算机可读存储介质上。本文中公开的方法或算法的步骤可以体现在处理器可执行软件模块中,其可以驻留在有形的或非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质可以是计算机可存取的任何可用存储介质。举个例子,但是并不作为限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备,或可以用于以指令或数据结构的形式携带或存储期望的程序代码并可以由计算机存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则通常利用激光来光学地复制数据。上述的组合也应当包括在非暂 时性计算机可读介质的范围内。另外,方法或算法的操作可以作为非暂时性机器可读介质和/或非暂时性计算机可读介质上的代码和/或指令的一个或任何组合或集合,其可以整合到计算机程序产品中。
提供前面对公开方面的描述,以使本领域的任何技术人员能够制作或使用本发明。对这些方面的各种修改对于本领域的技术人员来说将是显而易见的,并且本文中限定的一般原则可以在不脱离本发明的精神或范围的情况下应用于其它方面。因此,本发明并不旨在限制本文中示出的方面,而是要符合与所附的权利要求和本文中公开的原则和新颖性特征相一致的最广的范围。
Claims (40)
1.一种用于改善具有多个处理器的计算设备上的性能的方法,所述方法包括:
确定第一处理器的稳定状态工作负荷;
确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量;
计算针对包括所述第一处理器和第二处理器的处理组的性能保证值;
将所述第一处理器从空闲状态转换到繁忙状态;
基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述第一处理器的频率;
确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及
当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
2.如权利要求1所述的方法,其中,当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率包括:
将所述第一处理器的频率或所述第二处理器的频率增加到最大处理器频率。
3.如权利要求1所述的方法,其中,当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率包括逐渐地增加所述第一处理器的频率或所述第二处理器的频率,所述方法还包括反复地执行以下操作:
基于经调节的频率来更新所述性能保证值;
确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及
当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
4.如权利要求1所述的方法,其中,计算针对包括所述第一处理器和第二处理器的处理组的性能保证值包括:计算最后期限值。
5.如权利要求1所述的方法,其中,计算针对包括所述第一处理器和第二处理器的处理组的性能保证值包括:计算预算值。
6.如权利要求1所述的方法,其中,计算针对包括所述第一处理器和第二处理器的处理组的性能保证值包括:确定被调度在所述第一处理器上执行的任务的要求。
7.如权利要求1所述的方法,还包括:
通过对繁忙状态和空闲状态之间的转换进行抽样,来生成脉冲序列。
8.如权利要求1所述的方法,其中,以下操作由单线程来执行:确定所述第一处理器的稳定状态工作负荷、确定在所述第一处理器上执行稳定状态工作负荷所需要的工作量、以及计算针对包括所述第一处理器和第二处理器的处理组的性能保证值。
9.如权利要求8所述的方法,其中,所述单线程在所述第一处理器上执行。
10.如权利要求8所述的方法,其中,所述单线程在所述计算设备的所述第二处理器上执行。
11.一种计算设备,包括:
第一处理器;
第二处理器;
用于确定所述第一处理器的稳定状态工作负荷的单元;
用于确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量的单元;
用于计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值的单元;
用于将所述第一处理器从空闲状态转换到繁忙状态的单元;
用于基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述第一处理器的频率的单元;
用于确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段的单元;以及
用于当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率的单元。
12.如权利要求11所述的计算设备,其中,用于当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率的单元包括:
用于将所述第一处理器的频率或所述第二处理器的频率增加到最大处理器频率的单元。
13.如权利要求11所述的计算设备,其中,用于当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率的单元包括用于逐渐地增加所述第一处理器的频率或所述第二处理器的频率的单元,所述计算设备还包括:
用于反复地执行以下操作的单元:
基于经调节的频率来更新所述性能保证值;
确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及
当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
14.如权利要求11所述的计算设备,其中,用于计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值的单元包括:用于计算最后期限值的单元。
15.如权利要求11所述的计算设备,其中,用于计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值的单元包括:用于计算预算值的单元。
16.如权利要求11所述的计算设备,其中,用于计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值的单元包括:用于确定被调度在所述第一处理器上执行的任务的要求的单元。
17.如权利要求11所述的计算设备,还包括:
用于通过对繁忙状态和空闲状态之间的转换进行抽样,来生成脉冲序列的单元。
18.如权利要求11所述的计算设备,还包括用于经由单线程来完成以下操作的单元:确定所述第一处理器的稳定状态工作负荷、确定执行稳定状态工作负荷所需要的工作量、以及计算性能保证值。
19.如权利要求18所述的计算设备,其中,还包括用于在所述第一处理器上执行所述单线程的单元。
20.如权利要求18所述的计算设备,其中,还包括用于在所述计算设备的所述第二处理器上执行所述单线程的单元。
21.一种计算设备,包括;
第一处理器;
第二处理器;以及
主处理器,其被配置有处理器可执行指令,以执行包括以下各项的操作:
确定所述第一处理器的稳定状态工作负荷;
确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量;
计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值;
将所述第一处理器从空闲状态转换到繁忙状态;
基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述第一处理器的频率;
确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及
当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
22.如权利要求21所述的计算设备,其中,所述主处理器被配置有处理器可执行指令以执行操作,使得当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率包括:
将所述第一处理器的频率或所述第二处理器的频率增加到最大处理器频率。
23.如权利要求21所述的计算设备,其中:
所述主处理器被配置有处理器可执行指令以执行操作,使得当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率包括逐渐地增加所述第一处理器的频率或所述第二处理器的频率;以及
所述主处理器被配置有处理器可执行指令,以反复地执行以下操作:
基于经调节的频率来更新所述性能保证值;
确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及
当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
24.如权利要求21所述的计算设备,其中,所述主处理器被配置有处理器可执行指令以执行操作,使得计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值包括:计算最后期限值。
25.如权利要求21所述的计算设备,其中,所述主处理器被配置有处理器可执行指令以执行操作,使得计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值包括:计算预算值。
26.如权利要求21所述的计算设备,其中,所述主处理器被配置有处理器可执行指令以执行操作,使得计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值包括:确定被调度在所述第一处理器上执行的任务的要求。
27.如权利要求21所述的计算设备,其中,所述主处理器被配置有处理器可执行指令,以执行还包括以下项的操作:
通过对繁忙状态和空闲状态之间的转换进行抽样,来生成脉冲序列。
28.如权利要求21所述的计算设备,其中,所述主处理器被配置有处理器可执行指令以执行操作,使得以下操作由单线程来执行:确定所述第一处理器的稳定状态工作负荷、确定在所述第一处理器上执行稳定状态工作负荷所需要的工作量、以及计算针对包括所述第一处理器和所述第二处理器的处理组的性能保证值。
29.如权利要求28所述的计算设备,其中,所述第一处理器是所述主处理器。
30.如权利要求28所述的计算设备,其中,所述第二处理器是所述主处理器。
31.一种非暂时性计算机可读存储介质,具有存储在其上的处理器可执行软件指令,所述处理器可执行软件指令被配置为使主处理器执行包括以下各项的操作:
确定第一处理器的稳定状态工作负荷;
确定在所述第一处理器上执行所确定的稳定状态工作负荷所需要的工作量;
计算针对包括所述第一处理器和第二处理器的处理组的性能保证值;
将所述第一处理器从空闲状态转换到繁忙状态;
基于所述第一处理器的实际工作负荷,来执行动态时钟和电压调节操作以调节所述第一处理器的频率;
确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及
当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
32.如权利要求31所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使所述主处理器执行操作,以使得当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率包括:
将所述第一处理器的频率或所述第二处理器的频率增加到最大处理器频率。
33.如权利要求31所述的非暂时性计算机可读存储介质,其中:
所存储的处理器可执行软件指令被配置为使所述主处理器执行操作,以使得当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率包括逐渐地增加所述第一处理器的频率或所述第二处理器的频率,以及
所存储的处理器可执行软件指令被配置为使所述主处理器反复地执行以下操作:
基于经调节的频率来更新所述性能保证值;
确定所述第一处理器和所述第二处理器是否已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段;以及
当确定所述第一处理器和所述第二处理器已经在所述繁忙状态保持了大于或等于所确定的工作量和所述性能保证值之和的一组合时段时,增加所述第一处理器和所述第二处理器中的一个处理器的频率。
34.如权利要求31所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使所述主处理器执行操作,以使得计算针对包括所述第一处理器和第二处理器的处理组的性能保证值包括:计算最后期限值。
35.如权利要求31所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使所述主处理器执行操作,以使得计算针对包括所述第一处理器和第二处理器的处理组的性能保证值包括:计算预算值。
36.如权利要求31所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使所述主处理器执行操作,以使得计算针对包括所述第一处理器和第二处理器的处理组的性能保证值包括:确定被调度在所述第一处理器上执行的任务的要求。
37.如权利要求31所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使所述主处理器执行还包括以下项的操作:
通过对繁忙状态和空闲状态之间的转换进行抽样,来生成脉冲序列。
38.如权利要求31所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使所述主处理器执行操作,以使得以下操作由单线程来执行:确定所述第一处理器的稳定状态工作负荷、确定在所述第一处理器上执行稳定状态工作负荷所需要的工作量、以及计算针对包括所述第一处理器和第二处理器的处理组的性能保证值。
39.如权利要求38所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使所述主处理器执行操作,所述第一处理器是所述主处理器。
40.如权利要求38所述的非暂时性计算机可读存储介质,其中,所存储的处理器可执行软件指令被配置为使得所述主处理器执行操作,所述第二处理器是所述主处理器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/759,709 US9176572B2 (en) | 2009-12-16 | 2013-02-05 | System and method for controlling central processing unit power with guaranteed transient deadlines |
US13/759,709 | 2013-02-05 | ||
PCT/US2013/061649 WO2014123587A1 (en) | 2013-02-05 | 2013-09-25 | System and method for controlling central processing unit power with guaranteed transient deadlines |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104969142A CN104969142A (zh) | 2015-10-07 |
CN104969142B true CN104969142B (zh) | 2017-09-19 |
Family
ID=49382574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380072130.XA Active CN104969142B (zh) | 2013-02-05 | 2013-09-25 | 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP2954385A1 (zh) |
JP (1) | JP5982588B2 (zh) |
KR (1) | KR101659705B1 (zh) |
CN (1) | CN104969142B (zh) |
WO (1) | WO2014123587A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11886274B2 (en) | 2019-12-09 | 2024-01-30 | Huawei Technologies Co., Ltd. | Methods and devices for voltage scaling for a processor based on predicted operating frequency |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160224053A1 (en) * | 2015-01-30 | 2016-08-04 | Qualcomm Incorporated | Timer-based processing unit operational scaling employing timer resetting on idle process scheduling |
US9886081B2 (en) | 2015-09-16 | 2018-02-06 | Qualcomm Incorporated | Managing power-down modes |
US10255106B2 (en) | 2016-01-27 | 2019-04-09 | Qualcomm Incorporated | Prediction-based power management strategy for GPU compute workloads |
US10331195B2 (en) * | 2016-06-06 | 2019-06-25 | Qualcomm Incorporated | Power and performance aware memory-controller voting mechanism |
US10649518B2 (en) * | 2017-01-26 | 2020-05-12 | Ati Technologies Ulc | Adaptive power control loop |
CN109426329A (zh) * | 2017-08-30 | 2019-03-05 | 比亚迪股份有限公司 | 片上系统及其时钟频率动态控制方法和装置 |
CN109417594A (zh) * | 2017-11-29 | 2019-03-01 | 深圳市大疆创新科技有限公司 | 图像处理方法、拍摄设备、无人机及地面端设备 |
US11449125B1 (en) * | 2021-04-01 | 2022-09-20 | Qualcomm Incorporated | Adaptive dynamic clock and voltage scaling |
CN114785376B (zh) * | 2022-05-06 | 2023-07-21 | Oppo广东移动通信有限公司 | 频压预配置方法和相关装置 |
WO2023238276A1 (ja) * | 2022-06-08 | 2023-12-14 | 三菱電機株式会社 | 情報処理装置および情報処理方法 |
US20240111560A1 (en) * | 2022-09-30 | 2024-04-04 | Subhankar Panda | Workload linked performance scaling for servers |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101903844A (zh) * | 2007-12-20 | 2010-12-01 | 高通股份有限公司 | 减少电压调节器之间的交互调节干扰 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917789B2 (en) * | 2007-09-28 | 2011-03-29 | Intel Corporation | System and method for selecting optimal processor performance levels by using processor hardware feedback mechanisms |
KR101592055B1 (ko) * | 2008-05-13 | 2016-02-04 | 시놉시스, 인크. | 전력 관리자, 전자 시스템, 전력을 관리하는 방법 및 컴퓨터 프로그램 제품 |
US9128705B2 (en) * | 2009-12-16 | 2015-09-08 | Qualcomm Incorporated | System and method for controlling central processing unit power with reduced frequency oscillations |
US8909962B2 (en) * | 2009-12-16 | 2014-12-09 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US20110145559A1 (en) * | 2009-12-16 | 2011-06-16 | Thomson Steven S | System and method for controlling central processing unit power with guaranteed steady state deadlines |
EP2657840A4 (en) * | 2010-12-22 | 2016-09-28 | Fujitsu Ltd | MULTIC UR PROCESSOR SYSTEM AND POWER CONTROL METHOD |
-
2013
- 2013-09-25 KR KR1020157022977A patent/KR101659705B1/ko active IP Right Grant
- 2013-09-25 WO PCT/US2013/061649 patent/WO2014123587A1/en active Application Filing
- 2013-09-25 JP JP2015555992A patent/JP5982588B2/ja active Active
- 2013-09-25 EP EP13777365.1A patent/EP2954385A1/en not_active Withdrawn
- 2013-09-25 CN CN201380072130.XA patent/CN104969142B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101903844A (zh) * | 2007-12-20 | 2010-12-01 | 高通股份有限公司 | 减少电压调节器之间的交互调节干扰 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11886274B2 (en) | 2019-12-09 | 2024-01-30 | Huawei Technologies Co., Ltd. | Methods and devices for voltage scaling for a processor based on predicted operating frequency |
Also Published As
Publication number | Publication date |
---|---|
JP5982588B2 (ja) | 2016-08-31 |
KR101659705B1 (ko) | 2016-09-26 |
WO2014123587A1 (en) | 2014-08-14 |
KR20150114969A (ko) | 2015-10-13 |
JP2016511880A (ja) | 2016-04-21 |
EP2954385A1 (en) | 2015-12-16 |
CN104969142A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104969142B (zh) | 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法 | |
US11080095B2 (en) | Scheduling of work interval objects in an AMP architecture using a closed loop performance controller | |
US9176572B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
EP2513746B1 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
JP5643336B2 (ja) | 温度に基づいてマルチコア中央処理装置内の複数のコアを動的に制御するためのシステムおよび方法 | |
CN103890694B (zh) | 基于任务紧急性来管理时钟速率的系统和方法 | |
US9600059B2 (en) | Facilitating power management in a multi-core processor | |
JP5605960B2 (ja) | 周波数変動を低減させて中央処理装置電力を制御するためのシステムおよび方法 | |
US20130007492A1 (en) | Timer interrupt latency | |
CN107209546A (zh) | 抑制功率尖峰 | |
US20120072749A1 (en) | Multi-core power management | |
CN110109527A (zh) | 动态电压裕度恢复 | |
CN106471433A (zh) | 用于支持到存储器的常通路径的超低功率架构 | |
CN104756043B (zh) | 用于以有保证的瞬态最后期限来控制中央处理单元功率的系统和方法 | |
US20160091949A1 (en) | Performance management for a multiple-cpu platform | |
Cho et al. | A high performance load balance strategy for real‐time multicore systems | |
Chen et al. | Energy-efficient scheduling of periodic real-time tasks for reliable multi-core systems | |
WO2021011577A1 (en) | Dynamic energy performance preference based on workloads using an adaptive algorithm | |
CN115373505A (zh) | 用于处理器的功率优化定时器模块 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |