监控处理器功耗的方法和装置的制作方法

文档序号:6656977阅读:235来源:国知局
专利名称:监控处理器功耗的方法和装置的制作方法
背景技术
中央处理单元(CPU)可以在单个管芯上集成多种处理能力。CPU的性能可能受温度限制并且可能取决于诸如有源和无源部件(例如,散热器、风扇等)等“外部”冷却能力以及“内部”功率控制机制,例如软件应用等。该功率控制机制可以包括功率检测机制和功率减小机制。功率检测机制可以检测高功率条件并且调用功率减小机制。
功率控制机制可以使用基于模拟温度测量的功率监控方法。该功率监控方法可能需要使用位于有限数量的预定“热点”处的相对大的管芯上部件,以报告CPU的功耗。


在说明书的结束部分,特别指出并清楚声明关于本发明的主题。然而,通过结合附图参照以下的详细说明,可以更好地理解本发明的关于操作的组织和方法以及其目的、特征及优点,其中图1是根据本发明的示例性实施例的计算机系统的框图;图2A和2B是根据本发明的示例性实施例的处理器的说明框图;以及图3是根据本发明的示例性实施例降低处理器功耗的方法流程图。
应该意识到,为了使说明简单、清晰,附图中所示的元件不必按照比例绘制。例如,为了清楚起见,一些元件的尺寸相对于其他元件可以被放大。而且,在认为适合处,附图中的附图标记可以重复以指示相对应或者类似的元件。
具体实施例方式
在下面的具体说明中,为了充分理解本发明,阐述了许多具体细节。然而,本领域技术人员应该理解可以在没有这些具体细节的情况下实施本发明。在其它实例中,没有详细介绍公知的方法、程序、部件和电路以免得使本发明难以理解。
下面具体说明中的一些部分是以对计算机存储器内的数据位或者二进制数字信号进行的运算的算法和符号表示来介绍的。这些算法说明和表示可以是数据处理领域技术人员所使用的技术,从而将他们工作的内容传达给本领域的其他技术人员。
除非其它特别说明,否则由下面的论述显而易见的是,应该理解在整个说明书中,采用诸如“处理”、“计算”、“运算”、“确定”等类似术语的论述指计算机或者计算系统或者类似的电子计算设备的动作和/或过程,其将表示为计算系统的寄存器和/或存储器内的诸如电子量等物理量的数据处理和/或转换成同样被表示为计算系统的存储器、寄存器或其它这种信息存储、传输或显示设备内的物理量的其他数据。另外,在整个说明书中,术语“多个”可以用于描述两个或多个部件、设备、元件、参数等。例如,“多个指令”描述两个或多个指令。
应该理解,本发明可以用在多种应用中。尽管本发明并未在该方面受到限制,但是此处公开的电路和技术可以用在多种装置中,例如计算机系统、处理器、CPU等。旨在包括在本发明的范围内的处理器例如只包括精简指令集计算机(RISC)、具有流水线的处理器、复杂指令集计算机(CISC)等等。
本发明的一些实施例可以例如使用能够存储指令或者指令集的机器可读介质或产品来实现,如果机器(例如,处理器和/或其他适当机器)执行该指令或指令集,则该指令将使机器执行根据本发明的实施例的方法和/或操作。这种机器可以包括例如任何适当的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并且该机器可以使用硬件和/或软件的任意适当的组合来实现。该机器可读介质或产品可以包括例如任何适当类型的存储单元、存储器、存储产品、存储介质、存储器设备、存储器产品、存储器介质和/或存储器单元,例如存储器、可移动或者不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘存储器(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、各种类型的数字多用光盘(DVD)、磁带、磁带盒等。指令可以包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等,并且其可以使用任何适当的高级、低级、面向对象、可视、编译和/或解释编程语言,例如,C、C++、Java、BASIC、Pascal、Fortran、Cobol、汇编语言、机器代码等来实现。
转到图1,示出了根据本发明的示例性实施例的计算机系统100的框图。尽管本发明的范围未在该方面受到限制,但是计算机系统100可以是个人计算机(PC)、个人数字助理(PDA)、因特网设备、手机和/或任何其他的计算设备。在一个实例中,计算机系统100可以包括由电源120供电的主处理单元110。在本发明的实施例中,主处理单元110可以包括通过系统互连135电耦合到存储器140和一个或多个接口电路150的处理器200。例如,如果需要,系统互连135可以是地址/数据总线。应该理解的是,可以使用总线以外的互连将处理器200连接到存储器140。例如,可以使用一个或多个专用线路和/或交叉开关来将处理器200连接到存储器140。
根据本发明的一些实施例,可以包括任何类型的中央处理单元(CPU)。根据本发明的一些实施例,处理器200可以包括一个或多个内核220和事件处理单元240。另外,处理器200可以包括高速缓冲存储器(未示出),例如静态随机存取存储器(SRAM)等,或者任何其他类型的内部集成存储器。存储器140可以包括动态随机存取存储器(DRAM)、非易失性存储器等。在一个实例中,如果需要,存储器140可以存储可由处理器200执行的软件程序。
尽管本发明的范围未在该方面受到限制,但是接口电路150可以包括以太网接口和/或通用串行总线(USB)接口等。在本发明的一些示例性实施例中,一个或多个输入设备160可以连接到接口电路150,以将数据和命令输入到主处理单元110。例如,输入设备160可以包括键盘、鼠标、触摸屏、跟踪板、跟踪球、isopoint、语音识别系统等等。
尽管本发明的范围未在该方面受到限制,但是如果需要,可以将输出设备170经由一个或多个接口电路150可操作地耦合到主处理单元110并且可以包括一个或多个显示器、打印机、扬声器和/或其他输出设备。例如,输出设备中的一种可以是显示器。显示器可以是阴极射线管(CRT)、液晶显示器(LCD)或者任何其他类型的显示器。
尽管本发明的范围未在该方面受到限制,但是计算机系统100可以包括一个或多个存储器180。例如,如果需要,计算机系统100可以包括一个或多个硬盘驱动器、一个或多个光盘(CD)驱动器、一个或多个数字多用光盘驱动器(DVD)和/或其他计算机介质输入/输出(I/O)设备。
尽管本发明的范围未在该方面受到限制,但是计算机系统100可以经由到网络190的连接与其他设备交换数据。网络连接可以包括任何类型的网络连接,例如以太网连接、数字用户线(DSL)、电话线、同轴电缆等。网络190可以是任何类型的网络,例如因特网、电话网、有线网络、无线网络,例如符合IEEE标准802.11a/b/g,1999的网络、等等。
尽管本发明的范围不限于发明的这种示例性实施例,但是事件处理单元240可以计数来自内核220的一个或多个微架构事件并且可以基于所述一个或多个所计数的微架构事件的加权值来估计处理器200的功耗值。事件处理单元240可以分别提供一个或多个加权值给一个或多个事件。事件处理单元240可以对所述一个或多个加权事件求和并且可以对加权事件的和进行滤波。例如,如果需要,事件处理单元240可以通过计算指数加权移动均值来对加权事件的和滤波。应该理解的是,事件处理单元240可以由硬件,或者软件,或者硬件和/或软件的组合实现。此外,处理器200可以例如通过输出设备170和/或通过网络190提供与估计的功耗值对应的输出信号,从而一个或多个计算机可以读取估计的功耗值。如果需要,该一个或多个计算机可以执行功耗应用程序,其可以发送指令以平衡处理器200的功耗。尽管本发明的范围未在该方面受到限制,但是在本发明的一些实施例中,处理器200可以接收来自一个或多个计算机的指令,从而基于所估计的功耗值来平衡处理器200的功耗。
尽管本发明的范围未在该方面受到限制,但是在一些实施例中,微架构事件的特征可以是微架构指令,例如“下载”、“存储”、“加”、“减”、“乘”、“移位、“与””等等。另外,指令例如可以包括输入值和输出值,例如寄存器值和/或常数。
转向图2,示出了根据本发明的示例性实施例的图1的处理器200的具体框图。尽管本发明的范围未在该方面受到限制,但是如上所述,处理器200可以包括一个或多个内核220和事件处理单元240。根据本发明的一些实施例,一个或多个内核220可以包括微架构计数器222。例如,微架构计数器222可以包括一个或多个端口解码器223、一个或多个累加器224以及一个或多个事件计数器225。
尽管本发明的范围未在该方面受到限制,但是事件处理单元240可以包括一个或多个可编程的预定标器(prescaler)单元245、组合器250、滤波器255、比较器260、阈值265、存储器270以及功率控制器280。存储器270可以包括处理器的基本输入/输出系统(BIOS)275。
尽管本发明的范围未在该方面受到限制,但是解码器223可以解码来自处理器200的内核(例如一个或多个内核220)的不同部件(例如端口)的微架构事件。累加器224可以累加解码事件并且可以提供端口的活动指示给计数器225。例如,端口0、1和N的解码器可以检测到事件。单个累加器,例如累加器224可以累加微架构事件,并且计数器225可以对该微架构事件计数以将微架构事件的总数提供给事件处理单元240,如果需要的话。
根据本发明的一个实施例,事件处理单元240可以包括一个或多个可编程的预定标器单元245。尽管本发明的范围未在该方面受到限制,但是可编程的预定标器单元245的数量可以基于系统所解码的事件类型的数量。可编程的预定标器单元245可以根据权重对所计数的微架构事件进行定标。例如,如果事件对应于五种功率单元,则分配给该事件的权重可以是5,尽管本发明的范围决没有在该方面受到限制。根据本发明的示例性实施例,可编程的预定标器单元245可以从存储器270加载权重。并且可以将该权重分配给所计数的微架构事件。根据本发明的一些实施例,如果需要的话,权重可以由处理器200的BIOS 275提供。
尽管本发明的范围未在该方面受到限制,但是组合器250可以组合来自可编程的预定标器245的加权计数的微架构事件并且可以通过组合内核220的微架构事件的加权值来生成功率估计值。在本发明的一些实施例中,滤波器255可以对加权的微架构事件进行滤波并且可以提供经滤波的事件给比较器260。滤波器255可以是例如低通滤波器、移动平均滤波器、α-β滤波器,α-β滤波器也称为指数加权移动均值(EWMA)滤波器。
尽管本发明的范围未在该方面受到限制,但是比较器260可以比较功率估计值与阈值265。例如,阈值可以是处理器200的功率减少机构所能处理的功率单元的最大数。根据本发明的实施例,如果比较结果大于阈值265,则功率控制器280可以控制参数以平衡处理器200的部件的功耗。例如,功率控制器280可以改变处理器200的电压,或者频率或者电压和频率,并且/或者如果需要,可以周期性地停止处理器200的操作,以便减小处理器200的功耗。
转向图3,示出了根据本发明的示例性实施例的方法流程图。尽管本发明的范围未在该方面受到限制,但是处理器200可以包括一个或多个内核,例如内核220。内核220可以包括执行微架构事件的部件、端口等,例如,如果需要,内核的部件的操作可以由软件指令触发。解码器(例如解码器223)可以解码微架构事件(文本框305),并且计数器(例如计数器225)可以对处理器内核的部件的微架构事件进行计数(文本框315)。
根据本发明的一些实施例,计数器可以提供用于估计处理器功耗的值,以检测处理器内核等中的“热点”。根据本发明的一些实施例,如果需要,处理器的功耗估计可以通过以下步骤进行从处理器BIOS加载加权值(文本框325);通过将加权值分配给计数的微架构事件来对所计数的微架构事件预定标(文本框335);以及如果需要,组合加权的微架构事件以提供功耗值(文本框345)。在本发明的一些实施例中,如果需要,可以根据基于测量的实际硅布图来对加权值编程。
另外或者可选地,可以通过计算事件在预定的时间的移动均值来生成功耗值(文本框355)。例如,在一些实施例中,如果需要,预定时间可以是1毫秒。应该理解的是,移动均值法仅仅是对微架构事件的组合值进行滤波的方法的一个例子;如果需要,本发明的不同实施例可以使用其他的滤波方法,例如指数加权移动均值法。
尽管本发明的范围未在该方面受到限制,但是功耗估计值可以与阈值,例如与阈值265进行比较(文本框365)。在本发明的一些实施例中,阈值可以基本等于处理器的最大功耗值,例如对应于与处理器有关的冷却设备,例如外部无源和/或有源冷却设备的最大冷却能力的功耗值。
根据本发明的一些实施例,如果功耗估计值大于阈值(文本框375),则功率控制器,例如功率控制器280可以平衡处理器部件上的负载以便减小处理器的功耗(文本框385)。例如,功率控制器可以改变处理器的电压电平,和/或处理器的频率值,和/或处理器的电压电平和频率,并且可以周期性地停止处理器的操作等。
尽管本发明的范围未在该方面受到限制,但是应该理解的是,此处使用的术语“功率”可以还指能量;例如也可以将功率减小当作能量减小,同样可以将功率控制当作能量控制等。
尽管此处已经示出并且描述了本发明的特定特征,但是本领域技术人员可以想到许多改进、替代、变化以及等价物。因此,应该理解的是,所附权利要求旨在覆盖所有这些改进和变化,因为其落入本发明的真正精神范围内。
权利要求
1.一种方法,包括对处理器的部件的微架构事件进行计数;基于所计数的微架构事件的加权值来估计所述处理器的功耗值;以及对所计数的微架构事件的加权值进行滤波。
2.根据权利要求1所述的方法,其中估计包括从所述处理器的基本输入/输出系统装入加权值。
3.根据权利要求1所述的方法,其中估计包括通过将可编程的权重分配给计数的微架构事件来预定标所计数的微架构事件。
4.根据权利要求1所述的方法,其中滤波包括计算所计数的微架构事件在预定时间的指数加权移动均值。
5.根据权利要求1所述的方法,包括对两个或多个微架构事件进行计数;通过将两个或多个可编程的权重分配给所计数的微架构事件来分别预定标所述两个或多个计数的微架构事件;以及组合所述两个或多个加权的微架构事件来生成功率估计值。
6.根据权利要求1所述的方法,其中所述处理器包括两个或多个内核,所述方法包括对所述两个或多个内核的两个或多个部件的两个或多个微架构事件进行计数;以及基于所述两个或多个计数的微架构事件的所述加权值,估计所述处理器的功耗值。
7.根据权利要求6所述的方法,包括基于所述两个或多个计数的微架构事件的所述加权值来平衡两个或多个内核上的负载。
8.根据权利要求6所述的方法,还包括将所述功率估计值与阈值比较;以及如果所述功率估计值超过所述阈值,则减小所述处理器的所述功耗。
9.根据权利要求8所述的方法,其中减小包括改变所述处理器的电压电平和频率。
10.根据权利要求8所述的方法,其中减小包括改变所述处理器的频率并且周期性地停止所述处理器。
11.一种处理器,包括微架构事件计数器,用于对微架构事件进行计数;基本输入/输出系统,用于存储权重;以及可编程的预定标器,用于从所述基本输入/输出系统装入权重并且用于将所述权重分配给所计数的微架构事件。
12.根据权利要求11所述的处理器,包括解码器,用于对部件的微架构事件解码;以及组合器,用于通过组合两个或多个解码的微架构事件的加权值来生成功率估计值。
13.根据权利要求11所述的处理器,包括两个或多个内核,其中所述两个或多个内核的内核包括解码器,用于对所述内核的部件的所述微架构事件进行解码;以及组合器,用于通过分别组合所述两个或多个内核的两个或多个微架构事件的加权值来生成功率估计值。
14.根据权利要求11所述的处理器,包括比较器,用于将所述功率估计值和阈值进行比较;以及功率控制器,用于根据所述阈值来平衡所述处理器的所述功耗。
15.根据权利要求14所述的处理器,其中所述功率控制器能够通过改变所述处理器的电压和频率来平衡所述功耗。
16.根据权利要求11所述的处理器,还包括存储器,用于存储所述基本输入/输出系统。
17.一种计算机系统,包括处理器,其至少包括微架构事件计数器,用于对微架构事件计数;存储器,具有用于存储权重的基本输入/输出系统;以及可编程的预定标器,用于从所述存储器下载所述权重并且用于将所述权重分配给所计数的微架构事件。
18.根据权利要求17所述的计算机系统,其中所述处理器包括至少两个或多个内核,所述两个或多个内核的内核包括解码器,用于对所述内核的部件的所述微架构事件解码;以及组合器,用于通过分别组合所述两个或多个内核的两个或多个微架构事件的加权值来生成功率估计值。
19.根据权利要求17所述的计算机系统,其中所述处理器包括比较器,用于将所述功率估计值和阈值进行比较;以及功率控制器,用于根据所述阈值来平衡所述处理器的所述功耗。
20.根据权利要求19所述的计算机系统,其中,所述功率控制器能够通过改变所述处理器的电压和频率来平衡所述功耗。
21.根据权利要求19所述的计算机系统,其中,所述功率控制器能够通过改变所述处理器的频率和周期性地停止所述处理器来平衡所述功耗。
22.一种计算机系统,包括处理器,其至少包括微架构事件计数器,用于对微架构事件计数;存储器,具有用于存储权重的基本输入/输出系统;可编程的预定标器,用于从所述存储器下载所述权重并且用于将所述权重分配给所计数的微架构事件;以及液晶显示器。
23.根据权利要求22所述的计算机系统,其中所述处理器包括至少两个或多个内核,并且所述两个或多个内核的内核包括解码器,用于对所述内核的部件的所述微架构事件解码;以及组合器,用于通过分别组合所述两个或多个内核的两个或多个微架构事件的加权值来生成功率估计值。
24.根据权利要求22所述的计算机系统,其中所述处理器包括比较器,用于将所述功率估计值和阈值进行比较;以及功率控制器,用于根据所述阈值来平衡所述处理器的所述功耗。
25.根据权利要求24所述的计算机系统,其中所述功率控制器能够通过改变所述处理器的电压和频率来平衡所述功耗。
26.根据权利要求22所述的计算机系统,其中所述功率控制器能够通过改变所述处理器的频率和周期性地停止所述处理器来平衡所述功耗。
27.一种产品,包括存储介质,其具有存储在其上的指令,当执行所述指令时,所述指令引起对处理器的部件的微架构事件计数;基于所计数的微架构事件的加权值来估计所述处理器的功耗值;以及对所计数的微架构事件的加权值进行滤波。
28.根据权利要求27所述的产品,其中当执行所述指令时,所述指令引起从所述处理器的基本输入/输出系统下载加权值。
29.根据权利要求27所述的产品,其中当执行所述估计指令时,所述指令引起通过将可编程的权重分配给所计数的微架构事件来预定标所计数的微架构事件。
30.根据权利要求27所述的产品,其中当执行所述计数指令时,该计数指令引起对两个或多个微架构事件计数,并且还引起通过将两个或多个可编程的权重分配给所计数的微架构事件来预定标所述两个或多个计数的微架构事件;以及组合所述两个或多个加权的微架构事件来生成功率估计值。
31.根据权利要求27所述的产品,其中当执行所述指令时,所述指令引起将所述功率估计值和阈值进行比较;以及根据所述阈值来减小所述处理器的所述功耗。
32.根据权利要求27所述的产品,其中当执行所述指令时,所述指令引起计算预定时间上的指数加权移动均值。
33.根据权利要求30所述的产品,其中当执行所述指令时,所述指令引起对所述处理器的两个或多个内核的两个或多个部件的两个或多个微架构事件进行计数;以及基于所述两个或多个计数的微架构事件的加权值来估计所述处理器的所述功耗。
34.根据权利要求33所述的产品,其中当执行所述指令时,所述指令引起基于所述两个或多个计数的微架构事件的所述加权值来平衡所述处理器的所述两个或多个部件上的负载。
35.根据权利要求31所述的产品,其中当执行减小的所述指令时,所述指令引起改变所述处理器的电压电平和频率。
36.根据权利要求27所述的产品,其中当执行所述指令时,所述指令引起输出估计的功耗值;以及接收指令以基于所估计的功耗值来平衡所述处理器的所述功耗。
全文摘要
简要地介绍了一种处理器和用于控制该处理器的功耗的方法。该方法可以包括对处理器的部件的微架构事件计数,基于所计数的微架构事件的加权值来估计处理器的功耗值以及对所计数的微架构事件的加权值滤波。
文档编号G06F1/32GK101036103SQ200580033449
公开日2007年9月12日 申请日期2005年9月7日 优先权日2004年10月27日
发明者埃夫拉伊姆·罗特姆, 奥尔·拉姆丹 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1