功率分布图测定的制作方法

文档序号:6419462阅读:346来源:国知局
专利名称:功率分布图测定的制作方法
技术领域
本公开一般涉及延长移动设备中的电池寿命,且更具体地涉及这样的设备上执行的指令的功耗的分布图测定。
背景技术
在便携式设备(例如,笔记本计算机,亚笔记本计算机(subnotebookcomputer),蜂窝电话,PDA等)上的功耗对于用户是相当重要的。毕竟,在这样的设备上功率可用的程度就是人们认为它们是便携式的程度。这种一般性的偶尔例外可能是用作为代替桌面的计算机的笔记本计算机。在此情况下,有些用户只希望将这样的笔记本计算机从一个电源插座移到另一个,因而减少对可靠的便携式电源的需求。然而,大多数用户一般希望在不能利用电源插座的移动环境中使用笔记本计算机和其它便携式设备。
在这样的设备中使用的组件可以汲取相当大的功率。例如,在典型的笔记本中的组件在笔记本运行某些应用程序时可以汲取25瓦或更多。功耗是重要,不仅因为它决定电池将持续多久,而且还因为存在笔记本机箱能够散发多少热量并仍保持舒适地触摸的限制。热量对于PDA和蜂窝电话不太成问题,但希望这些设备具有长得多的电池寿命,因此功耗仍是主要关心的问题。
为这样的便携式设备提供组件的组件制造者不断地努力减少它们的组件需要的功率量,以便保存电池电源。例如,笔记本计算机的芯片制造者可结合电源节省特征,诸如在笔记本计算机处在“睡眠”模式时或者在它从AC(交流)电源切换到电池电源时,可自动减少时钟速度和处理器的电压电平。其它电源节省特征可包括在独立的硬件芯片中嵌入某些软件功能,当它们不在使用时关闭电路系统的模块(例如,在蜂窝电话中的芯片的无线电部分),当在某个时间段已经不使用硬件组件时断开它们(例如,断开显示屏幕)等等。
尽管这些电源节省特征提供某些优点,但它们通常未能解决在正常的“运行时间”环境中如何减少功耗的问题,并且/或者它们具有其它缺点。例如,在笔记本计算机处在睡眠模式中或者运行于电池电源时减少时钟速度和处理器的电压电平,可不利地影响某些应用程序的性能。使用附加的硬件来嵌入某些软件功能要求附加的空间和成本用于硬件。关闭在某个时间段不在使用的电路系统的模块和其它硬件(例如显示屏幕)只在不在使用这些组件时节省电源。因而,当前的方法没有解决减少这样的便携式设备的正常运行时间功耗的问题,也没有提供任何有关在这样的设备上运行的软件如何消耗功率的有用信息。
而且,当前的移动应用和嵌入式开发工具没有提供这样一种机制,用于在这样的移动设备上执行的软件的功耗的分布图测定。用于监控和优化在这样的设备上的功耗的常规技术要求使用示波器和逻辑分析仪的劳动密集的硬件跟踪和软件调试。这样的技术不帮助隔离软件代码中功耗可能过大的精确位置。
因此,存在对这样一种方法的需求,该方法对特定的软件在它执行时的功耗进行分布图测定,以便减少在嵌入式以电池为电源的设备中的功耗。

发明内容
本文描述软件执行的功率分布图测定。
按照一个实施例,识别在处理器上执行的指令。从功率测量电路接收功耗数据,并将功耗数据与所识别的指令相关联。
按照另一个实施例,产生功率分布图。功率分布图包括多个功耗值和多个所识别的指令。在功率分布图中每个功耗值与所识别的指令相关联。


贯穿附图,相同的参考数字参考同样的组件和特征。
图1例示了适合实现功率分布图测定的示例性开发环境100。
图2例示了配置为实现功率分布图测定的目标设备、主机计算机和功率测量电路的示例性实施例。
图3例示了配置为测量嵌入式设备的功耗的功率测量电路的模数转换器。
图4例示了可能由功率分布图测定器产生的、传送功耗信息的图形用户界面的例子。
图5例示了配置为实现功率分布图测定的目标设备、主机计算机和功率测量电路的另一个示例性实施例。
图6-8例示了用于实现在处理器上执行的软件指令的功率分布图测定的示例性方法的方框图。
图9例示了适用于实现目标嵌入式设备和主机计算机的示例性计算环境。
具体实施例方式
概述下面的讨论针对的是用于在处理器上执行的软件指令的功耗的分布图测定的系统和方法。功率测量电路记录执行各种软件指令的处理器的功耗级别。分布图测定工具跟踪和识别正在处理器上执行的指令并在指令与在那些指令执行期间消耗的功率之间产生关联。关联是分布图表示的,例如,作为将消耗的功率量与在处理器上执行的每个指令相关联的表或曲线图。功率分布图使能够精确地隔离和识别指令,这些指令与它们执行期间消耗的功率量有关。
所揭示的系统和方法的优点包括为软件开发者提供一种方法,来隔离在执行时消耗过多功率量的代码段。消耗过多功率量的代码段有责任改变执行相同功能的配置但减少在执行期间消耗的功率量。通过识别和重新配置这样的代码段,可以在移动嵌入式设备和其它设备上实现显著的电源节省,尤其是那些代码段在循环的基础上执行的情况下。
示例性环境图1例示适合于实现功率分布图测定的示例性开发环境100。在示例性环境100中,目标设备102通过数据通信总线108耦合至主机计算机104和功率测量电路106。在示例性环境100中,主机计算机104和功率测量电路106也通过总线108相耦合。想要用总线108代表任何各种各样的通用数据通信总线,例如包括I2C(IC之间)总线、SPI(串行外设接口)总线、USB(通用串行总线)等等。总线108不是单一总线,而是由若干总线实例构成的,例示为互连设备102、104和106的108(a)、108(b)和108(c)。
想要用目标设备102代表任何各种各样的常规计算设备。这样的设备102可包括,例如桌面PC、笔记本或其它便携式/手持式计算机、工作站、服务器、大型计算机、因特网器具等等。然而,功率分布图测定可能特别有利于能够在电池电源上起作用的移动/便携式计算设备的开发。因而,贯穿本揭示,通常目标设备102是作为能够在电池电源上起作用的移动计算设备来讨论的。
这样的移动设备102一般包括嵌入式、手持式/移动设备,诸如PDA(例如,Helwett-Packard的iPAQ,3Com的PalmPilot,RIM的Blackberry),蜂窝电话,智能电话(smartphone)等等。这样的嵌入式、手持式/移动设备通常比典型个人计算机提供更有限的计算能力。这样的能力可包括,例如,用于个人或商业使用的信息存储和检索能力,包括保持时间表日程和地址簿信息。这样的设备通常提供操作系统的某种版本,诸如例如Windows CE。各种应用可用于这样设备,它们与可用于典型个人计算机的提供完全功能版本相比较,提供有限的功能。因而,移动、嵌入式目标设备102可包括有限版本的电子邮件、电话、SMS(短消息服务)、组织器和Web应用程序。目标设备102也可能包括便携式计算机或笔记本计算机。目标设备102可实现为运行开放平台操作系统的笔记本计算机,诸如来自Microsoft的Windows品牌操作系统和用于执行普通计算功能诸如电子邮件、日程、任务组织、文字处理、Web浏览等等的各种应用程序。本文下面参考图9更详细地描述用于实现目标设备102的各种实施例的示例性计算环境。
功率测量电路106是能够测量在目标设备102上的功耗的定制电路。功率测量电路106使能够以模拟形式测量当前的功耗并且将模拟功耗测量转换成数字形式。功率测量电路106一般还使能够存储这样的以数字方式格式化的功耗信息并具有将此信息通过数据通信总线108(c)传送至主机计算机104的能力。
主机计算机104可以是任何各种各样的常规计算设备,包括桌面PC、笔记本或便携式计算机、工作站、服务器、大型计算机、因特网器具等等。主机计算机104通常配置为目标设备102也可能包括便携式计算机或笔记本计算机对与在设备102上执行的软件指令有关的在目标设备102上的功耗进行分布图测定。主机计算机104跟踪和识别在任意给定时间哪些软件指令正在目标设备102上执行,并且从功率测量电路106接收功耗信息。主机计算机104产生功率分布图,它将在目标设备102上的功耗与在设备102上特定软件指令的执行相关联。本文在下面参考图9更详细地描述用于实现主机计算机104的示例性计算环境。
示例性实施例图2例示了配置为实现功率分布图测定的目标设备102、主机计算机104和功率测量电路106的示例性实施例。目标设备102被实现为嵌入式设备102,并包括处理器200和存储器202。处理器200包括程序计数器204。程序计数器204是处理器200中的寄存器,它包含要被执行的来自存储器202的下一个指令206的地址。为了将处理器200指向后续的指令206,在取来每一个指令206之后,自动地增加程序计数器204。另外,可提供特殊的指令,它们通过将一个新值写到程序计数器204来改变指令206的执行顺序。这样的指令206包括,例如JUMP(跳转)、CALL(调用)和RTS(从子例程返回)指令。在存储器202中的指令206可以包括任何可执行的指令,它们是操作系统、各种应用程序、设备驱动程序等等的一部分。
功率测量电路106一般包括模数转换器(ADC)208,通信接口210和存储器212。ADC 208最好是高精度模数转换器,诸如例如,National SemiconductorADC12662。ADC 208一般配置为测量在嵌入式设备102上执行指令206的处理器200的当前功耗。可供替换地,ADC 208可配置为在设备102上指令206的执行期间测量整个嵌入式设备102的当前功耗。一般测量的功耗以毫安或者毫瓦(分别为mA或mW)为单位。
图3例示了在电路106上一个典型的ADC 208如何耦合至嵌入式设备102以测量功耗的例子。注意,尽管图3例示了配置为测量嵌入式设备102的功耗的ADC 208,但它也可配置为测量嵌入式设备102的各种组件诸如处理器200的功耗。ADC 208一般将连续变化(即模拟)的功耗信号从设备102转换成数字(离散)的形式。以一个速率从设备102取样模拟的功耗信号,该速率一般大于或等于由处理器200在嵌入式设备102上正在执行指令206的速率。此功率取样速率也可能是在主机计算机104上的分布图测定器220取样嵌入式设备102的处理器200上的程序计数器204的速率,如下面将更详细地讨论的。ADC208的数字输出状态的数量是由ADC 208的精度规定的。例如,灯(lamp)/12位ADC 208可以提供4096个不同的离散输出值,每个代表0.2毫安(即灯/4096)的分辨率。
在被传送到主机计算机104之前,由ADC 208转换成数字形式的每个功耗值一般存储为功率测量电路106上存储器212中的功耗数据214。通信接口210配置为响应来自主机计算机104的、请求存储在存储器212中的功耗数据214的查询。因而,通信接口210从主机计算机104接收请求并且在响应这些请求时从存储器212返回功耗数据214至主机计算机104。通信接口210一般实现为各种各样能够通过总线108(c)与主机计算机104通信的串行和/或并行接口中的任何一个。
主机计算机104包括处理器216和存储器218,并且一般而言,可以由本文下面参考图9更详细地描述的示例性计算环境代表。存储器218包括功率分布图测定器220模块,它配置为在处理器216上执行,以跟踪和识别在嵌入式设备102上执行的软件指令206。在这方面,功率分布图测定器220通常类似目前可用的分布图测定器开发工具,它们使用统计方法来确定在任意时刻哪些软件指令和组件(即指令组)正在运行以及软件指令和组件执行多久。
常常使用的分布图测定方法的一个受欢迎的例子是Monte Carlo(蒙特卡洛)分布图测定。在Monte Carlo分布图测定中,分布图测定器(例如功率分布图测定器220)以非常高的速率中断系统(例如,在嵌入式设备102上的处理器200)并且检查哪个软件指令206目前正在执行。此检查是通过取样正被中断的处理器200的程序计数器204来实现的。使用程序计数器204的取样值,分布图测定器220扫描指令查找表222以查找与程序计数器204相关联的存储器地址。一般而言,查找表222是存储单元/地址与在编译器将源代码编译成机器代码时产生的编译过的代码之间的映射。根据存储器地址,分布图测定器220识别当中断处理器200时正在执行的软件指令。在一段时间之后,将“命中”每个软件指令或组件的数量制成表格,并且软件开发者能够更好地理解哪个软件正在使用大多数计算时间。
另外,功率分布图测定器220被配置成查询功率测量电路106以确定在任意给定时刻嵌入式设备102的功耗级别。在响应它发送给功率测量电路106的查询时,功率分布图测定器220从功率测量电路106接收功耗数据214。功率分布图测定器220适合于每次在如上所述它取得程序计数器204的样本时查询功率测量电路106。因而,每次在功率分布图测定器220取样程序计数器204以识别在处理器200上执行的软件指令时,它查询功率测量电路106并且从软件指令在处理器200上的执行期间已经测量的功耗数据214接收值。可供替换地,功率分布图测定器220可每隔一段时间查询功率测量电路106并且接收功耗数据214的各组值,然后将功耗数据214与所识别的在处理器200上执行的软件指令相关联。因而,可作为每一从功率分布图测定器220实时发送的查询的一个值来接收功耗数据214,或者可作为先前已经存储在功率测量电路106上的存储器212中的一组功耗值来接收它。
功率分布图测定器220也被配置为将从功率测量电路106接收的功耗数据214与在嵌入式设备102的处理器200上执行的软件指令206相关联。功率分布图测定器220产生功率分布图224,它量化在嵌入式设备102的处理器200上执行的精确软件指令所消耗的功率。功率分布图224可以表示为各种形式,例如包括,提供由识别软件指令的信息与在所识别的软件指令执行期间测量的相应功耗值构成的对的表或曲线图。
图4例示了可由功率分布图测定器224产生的、向开发者传送功率分布图224中的信息的图形用户界面。在图4中例示的功率分布图224是以曲线图的形式示出的,它描绘了功耗400的级别与来自在嵌入式设备102上执行的各种应用的各种软件指令402之间的相关性。想要用在曲线图的上半部404中的粗水平线来表示哪些软件指令402目前正在执行。想要用在曲线图的下半部406中的粗水平线来表示在目前正在执行的软件指令如在曲线图的上半部中表示的软件指令的执行期间消耗的功率的级别。例如,当指令“shell.exe<<0x2DFD098E>>”408执行时,功耗大约是90mA 410,而当指令“CEMGRC.exe<<0x6DDE76>>”412执行时,功耗大约是50mA 414。
一般而言,在诸如在图4中所示的功率分布图224中向开发者呈现的功率分布图信息可以帮助开发者识别在代码中的“热点”,其中在移动设备102上的运行时间功耗有增加。例如,在图4的分布图中,当“readdr.exe<<0xCD07A2CE>>”416正在执行时,功耗显著地增加,因为一个函数调用到“NK.exe<<0x0DFFF002>>”418中。因此,开发者可发现消除“NK.exe<<0x0DFFF002>>)″”418函数调用是有利的,如果为了节省电源有可能的话。
在开发者使用诸如在图4中所示的功率分布图224来对它们的软件模块的运行时间功耗进行分布图测定时,他们应该能够识别比其它更友好的功率-使用(power-usage)的某些类属编程构造和算法。例如,常常执行的使用递归的算法可比使用迭代的算法消耗更多的功率。同样,轮询可能消耗比等待中断要少的功率,或者,防止不必要的上下文切换可显著地减少功率,等等。而且,通过使用非常高的精度的分布图测定数据,有可能识别比其它使用更多功率的特定硬件相关的CPU指令。
图5例示了配置为实现功率分布图测定的目标设备102、主机计算机104和功率测量电路106的另一个示范实施例。如在先前图2的实施例中,目标设备102实现为嵌入式设备102。另外,图5的嵌入式设备102一般配置为如上所述地操作。然而,在图5的实施例中,嵌入式设备102包括功率测量电路106。功率测量电路106以与上面参考图2的实施例所讨论的相似的方式起作用。不过,因为将功率测量电路106集成到嵌入式设备102中,所以在一个实施例中,它可共享嵌入式设备102的各种组件诸如存储器202。作为一个例子,图5例示了作为由功率测量电路106存储在嵌入式设备102上的存储器202中的功耗数据214。
示例性方法现在将主要参考图6-8的流程图来描述在诸如图1的示例性开发环境100的环境中实现功率分布图测定的实例方法。这些方法一般应用于上面参考图2-5所讨论的示例性实施例。所描述的方法的要素可由任何合适的装置来完成,例如由在ASIC上的硬件逻辑模块或者通过在处理器可读介质上定义的处理器可读指令的执行来完成。
如在本文中使用的“处理器可读介质(processor-readable medium)”可以是包括存储、传送、传播或传输由处理器使用或执行的指令的任何装置。处理器可读介质可以是,但非限制性地,电子的、磁的、光的、电磁的、红外线的或者半导体系统、装置、设备或传播介质。处理器可读介质的更具体的例子包括,除其它的以外,具有一条或多条线的电子连接(电子的),便携式计算机盘(磁的),随机存取存储器(RAM)(磁的),只读存储器(ROM)(磁的),可擦除可编程只读存储器(EPROM或闪存存储器),光纤(光的),可重写光盘(CD-RW)(光的)和便携式光盘只读存储器(CDROM)(光的)。
图6所示的示例性方法600用于实现在处理器上执行的软件指令的功率分布图测定。处理器通常是能够在电池电源上操作的嵌入式设备102的组件。在块602,识别在处理器上执行的指令。下面参考方法700来一般地讨论识别过程,它是方法600的扩展。
在方法600的块604,从功率测量电路106接收功耗数据。功率测量电路106一般是软件开发板的一部分,或者它可以驻留在嵌入式设备102本身上。功率测量电路106一般配置为测量正在被实现为在嵌入式设备102上执行各种软件指令的处理电路系统的功耗,但它也可以配置为测量整个嵌入式设备102的功耗。运行功率分布图测定器220的主机计算机104一般在查询功率测量电路时接收功耗数据。然而,主机计算机104可自动地按某个固定的时间间隔从功率测量电路接收功耗数据。
在块606,功耗数据与所识别的指令相关联。在主机计算机104上执行的功率分布图测定器220将在嵌入式设备102上执行的每个指令与在每个所识别指令的执行期间测量的、该处理电路系统正在消耗的功率量(即,由功率测量电路106测量)相关联。功率分布图测定器220产生功率分布图,它跟踪由于软件指令的执行正在嵌入式设备102上消耗的功率。因此,功率分布图一般包括众多的功耗值,每一个功耗值与已经在嵌入式设备102上执行的所识别的软件指令相关联。功率分布图可以用各种形式实现,包括例如,具有将功耗值与所识别的软件指令匹配的数据对的表,或者可视地将功耗值与所识别的软件指令相关联的曲线图。
图7所示的示例性方法700用于实现软件指令的功率分布图测定,它是方法600的延伸。方法700从方法600的块602延伸,并且一般描述在处理器上执行的软件指令的识别。处理器一般是能够在电池电源上操作的嵌入式设备102的组件。在方法700的块702,中断处理器。一般,当中断处理器时,处理器正在运行时间环境中执行软件指令。中断来自执行功率分布图测定器220的主机计算机104。
在块704,取样处理器上的程序计数器。程序计数器是处理器中的寄存器,它包含要执行的来自存储器的下一个软件指令的地址。一般而言,是程序计数器的值允许在主机计算机104上执行的功率分布图测定器220在中断处理器时识别哪个指令正在执行。在块706,扫描查找表以确定由程序计数器表示的存储器中的地址。查找表是在存储在嵌入式设备上的软件指令的先前的编译期间产生的表。主机计算机104一般是在其上编译嵌入式设备102软件的计算机。因此,查找表驻留在主机计算机104上,并且在中断嵌入式设备102上的处理器并取样其程序计数器时,允许嵌入式设备102上执行的精确指令的识别。
在块708,识别驻留在由程序计数器确定的存储器地址上的软件指令。软件指令可能是来自在嵌入式设备102上运行的任何数量的例程或应用程序的指令。
图8所示的另一个示例性方法800,用于实现在嵌入式设备的处理器上执行的软件指令的功率分布图测定。在块802,测量在嵌入式设备上执行的软件指令的功耗。功率测量电路106一般配置为测量执行软件指令的处理器的功耗。然而,功率测量电路106也可配置为测量整个嵌入式设备102在由嵌入式设备上的处理器执行软件指令期间的功耗。功率测量电路可集成到嵌入式设备中,或者它可以是软件开发测试板的一部分。
在块804,来自嵌入式设备102的模拟功耗测量被转换成数字测量。模数转换器一般是由高精度的模数转换器(ADC)208实现的,诸如NationalSemiconductor ADC12662。在块806,数字功率测量被存储在功率测量电路106上的存储器中。在块808,功率测量电路106从主机计算机104接收传输功耗数据的请求。接收请求的次数与嵌入式设备102的处理器200上每个指令的执行的次数一样多。也可每隔一段时间接收请求。在块810,功率测量电路106通过将数字功耗测量传输至主机计算机104来响应请求。所传送的功耗数据可以测量一次传输一次,或者以测量的组来传输。传输可以取决于来自主机计算机104的请求的性质。
尽管已经依靠流程图和与流程图的块相关联的文本揭示了本发明,但要理解块不必必须按照提供它们的顺序来执行,并且可供替换的顺序可产生相似的优点。而且,这些方法不是排他的,并且可以单独地或者彼此结合地来执行。
示例计算机图9例示了适合实现目标设备102和主机计算机104的各种实施例的示例性计算环境。尽管所示的是一个特定的配置,但目标设备102和主机计算机104可以在其它计算配置中来实现。例如图9的示例性计算环境通常比一般可能由目标设备102的特定实施例使用的计算环境更先进。
计算环境900包括计算机902形式的通用计算系统。计算机902的组件可包括,但不限于,一个或多个处理器或处理单元904,系统存储器906,以及将包括处理器904在内的各种系统组件耦合到系统存储器906的系统总线908。
系统总线908代表任何几种类型的总线结构的一种或多种,包括存储器总线或存储控制器、外围设备总线、加速图形端口或使用各种总线结构中的任意一种的本地总线。系统总线908的一个例子是也称为“夹层总线”的外设组件互连(PCI)总线。
计算机902一般包括各种各样的计算机可读介质。这样的介质可以是任何可由计算机902存取的可用介质,并包括易失性和非易失性介质、可移动和不可移动介质两者。系统存储器906包括以易失性存储器形式的计算机可读介质,诸如随机存取存储器(RAM)910,和/或非易失性存储器,诸如只读存储器(ROM)912。基本输入/输出系统(BIOS)914,包含帮助在计算机902内组件之间传送信息的基本例程,诸如在启动期间,它被存储在ROM 912中。RAM 910一般包含由处理单元904可直接存取和/或目前操作的数据和/或程序模块。
计算机902还可包括其它可移动的/不可移动的、易失性/非易失性计算机存储介质。作为例子,图9例示了用于读写不可移动的、非易失性磁介质(未示出)的硬盘驱动器916,用于读写可移动的、非易失性的磁盘920(例如″软盘″)的磁盘驱动器918,以及用于读和/或写可移动的、非易失性光盘924诸如CD-ROM、DVD-ROM或其它光介质的光盘驱动器922。硬盘驱动器916、磁盘驱动器918和光盘驱动器922各自通过一个或多个数据介质接口926连接到系统总线908。可供替换地,硬盘驱动器916、磁盘驱动器918和光盘驱动器922可通过SCSI接口(未示出)连接到系统总线908。
磁盘驱动器及其关联的计算机可读介质为计算机902提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。尽管本例例示了硬盘916、可移动磁盘920和可移动光盘924,但要意识到,存储计算机可存取数据的其它类型的计算机可读介质,诸如磁带盒或其它磁存储设备、闪存卡、CD-ROM、数字通用盘(DVD)或其它光存储器、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除的可编程只读存储器(EEPROM)等等,也可用于实现示例性计算系统和环境。
任何数量的程序模块可存储在硬盘916、磁盘920、光盘924、ROM 912和/或RAM 910上,包括作为例子,操作系统926、一个或多个应用程序928、其它程序模块930和程序数据932。这样的操作系统926、一个或多个应用程序928、其它程序模块930和程序数据932中的每一个(或者它们的某种组合)可包括关于用户网络访问信息的高速缓存方案的实施例。
计算机902可以包括被识别为通信介质的各种各样的计算机/处理器可读介质。通信介质一般具体表机在调制的数据信号诸如载波或其它传输机制中的计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传输介质。术语″调制的数据信号″指具有以这样一种关于编码信号中的信息的方式设置或改变的一个或多个特性的信号。作为例子,但非限制性地,通信介质包括有线的介质,诸如有线的网络或直接线连接、以及无线的介质,诸如声音的、RF(射频)、红外线和其它无线介质。任意上述各项的组合也包括在计算机可读介质的范围之内。
用户可通过输入设备,诸如键盘934、定点设备936(例如″鼠标″),将命令和信息输入到计算机902中。其它输入设备938(未明确示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星电线天线、串行端口、扫描仪等等。这些和其它输入设备常常通过耦合系统总线908的输入/输出接口940连接至处理单元904,但是也可以通过其它接口和总线结构来连接,诸如并行端口、游戏端口或通用串行总线(USB)。
监视器942或其它类型的显示设备也通过一个接口诸如视频适配器944连接至系统总线908。除监视器942之外,其他输出外围设备还可包括诸如扬声器(未示出)和打印机946等组件,它们可以通过输入/输出接口940连接到计算机902。
计算机902可在使用逻辑连接至一台或多台远程计算机诸如远程计算机948的网络化环境中运行。例如远程计算机948可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或其它普通网络节点等等。远程计算设备948例示为可包括在此相对于计算机902所述的许多或全部元件和特征的便携式计算机。
在计算机902与远程计算机948之间的逻辑连接被示为局域网(LAN)950和一般广域网(WAN)952。这样的网络环境在办公室、企业级计算机网络、内部互联网和因特网中是很普通的。当在LAN网络环境中实现时,计算机902通过网络接口或适配器954连接到局域网950。当在WAN网络环境中实现时,计算机902一般包括调制解调器956或其它装置,用于在广域网952上建立通信。调制解调器956,可以是内置的或者外置的,可能经由输入/输出接口940或其它适当的机制连接到系统总线908。要意识到,所例示的网络连接是示例性的,并且可使用用于在计算机902与948之间建立通信链路的其它装置。
在网络化环境中,诸如由计算环境900所例示的环境,相对于计算机902所述的程序模块或者其部分,可存储在远程记忆存储设备中。作为例子,远程应用程序958驻留在远程计算机948的存储设备上。为了说明,应用程序和其它可执行程序组件,诸如操作系统,在此被示为离散的块,尽管认识到这样的程序和组件在不同的时间驻留在计算机系统902的不同存储组件中,以及是由计算机的数据处理器执行的。
结论尽管已经以专用于结构化特征和/或方法行为的语言描述了本发明,但要理解在所附的权利要求书中定义的本发明不必限制于所述的特定特征和行为。相反,作为实现所要求的本发明的示例性形式而揭示特定的特征和行为。
权利要求
1.一种包括处理器可执行指令的处理器可读介质,其特征在于,所述指令配置为识别在处理器上执行的指令;从功率测量电路接收功耗数据;以及将功耗数据与所识别的指令相关联。
2.如权利要求1所述的处理器可读介质,其特征在于,所述识别的步骤包括中断处理器;取样处理器的程序计数器;扫描查找表以找到由所述程序计数器指出的地址;以及确定位于所述地址的指令。
3.如权利要求1所述的处理器可读介质,其特征在于,所述接收的步骤包括查询功率测量电路;以及根据所述查询从所述功率测量电路接收数字功率读数。
4.如权利要求1所述的处理器可读介质,其特征在于,所述接收的步骤包括以预设时间间隔从所述功率测量电路接收数字功率读数。
5.如权利要求1所述的处理器可读介质,其特征在于,所述相关联的步骤包括将测量到的在所述处理器上所述所识别的指令的执行期间消耗的功率量与所识别的指令相关联。
6.如权利要求1所述的处理器可读介质,其特征在于,所述相关联的步骤包括生成功率分布图,它包括多个功耗值和多个所识别的指令,其中,在功率分布图中每个功耗值与一个所识别的指令相关联。
7.如权利要求6所述的处理器可读介质,其特征在于,所述功率分布图选自包括以下内容的组具有数据对的表,每对数据包括一功耗值和一所识别的指令;以及将功耗值与所识别的指令相关联的曲线图。
8.如权利要求1所述的处理器可读介质,其特征在于,功耗数据包括在处理器上指令的执行期间测量到的功耗值。
9.如权利要求1所述的处理器可读介质,其特征在于,所述处理器是从包括以下内容的组中选取的设备的组件嵌入式移动PDA(个人数字助理)计算设备,可用电池电源操作;蜂窝电话;智能电话;笔记本计算机;桌面PC(个人计算机);工作站;服务器;大型计算机;以及因特网器具。
10.一种包括处理器可执行指令的处理器可读介质,其特征在于,所述指令配置为将软件指令与通过执行所述软件指令所消耗的功率量相关联。
11.如权利要求10所述的处理器可读介质,其特征在于,所述相关联的步骤包括生成一功率分布图,它将在嵌入式设备上执行的软件指令与在所述软件指令执行期间测得的相应的功耗值相匹配。
12.一种包括处理器可执行指令的处理器可读介质,其特征在于,所述指令配置为测量在目标计算设备上执行的软件指令的功耗;转换模拟功率测量为数字功率测量;以及传送所述数字功率测量至主机计算机。
13.如权利要求12所述的处理器可读介质,其特征在于,还包括处理器可执行指令,配置为在转换后将数字功率测量存储在存储器中。
14.如权利要求12所述的处理器可读介质,其特征在于,所述传送包括从所述主机计算机接收对于数字功率测量的请求;以及根据所述请求传送数字功率测量至主机计算机。
15.如权利要求12所述的处理器可读介质,其特征在于,所述传送包括以预先设置的时间间隔来传输数字功率测量至主机计算机。
16.如权利要求12所述的处理器可读介质,其特征在于,所述目标计算设备选自包括以下内容的一个组嵌入式移动PDA(个人数字助理);蜂窝电话;智能电话;笔记本计算机;桌面PC(个人计算机);工作站;服务器;大型计算机;以及因特网器具。
17.一种方法,其特征在于,包括生成功率分布图,它将软件指令与所述软件指令执行期间消耗的功率量相关联。
18.如权利要求17所述的方法,其特征在于,所述软件指令的执行是由目标计算设备上的处理器完成的,并且所述消耗的功率量是由所述处理器消耗的功率量。
19.如权利要求17所述的方法,其特征在于,所述生成的步骤包括识别正在处理器上执行的软件指令;从功率测量电路接收功耗数据;以及将所述功耗数据与所述识别的软件指令相关联。
20.一种计算机,其特征在于,包括一功率分布图测定器,配置为识别在处理器上执行的软件指令,接收功耗数据、以及将所述功耗数据与所述软件指令相关联,使得每个软件指令都与一个表示在所述软件指令执行期间消耗的功率量的功耗值相关联。
21.如权利要求20所述的计算机,其特征在于,还包括查找表,所述功率分布图测定器还配置为监控处理器上的程序计数器并且根据所述程序计数器通过所述查找表来识别软件指令。
22.如权利要求20所述的计算机,其特征在于,还包括功率分布图,它具有多个功耗值,每个与相应的软件指令配对以表示在所述相应的软件指令执行期间消耗的功率量。
23.一计算机,其特征在于,包括功率分布图测定器,配置为生成将软件指令与在所述软件指令执行期间消耗的功率相关联的功率分布图。
24.一种计算机,其特征在于,包括用于识别在处理器上执行的指令的工具;用于从功率测量电路接收功耗数据的工具;以及用于生成将所述功耗数据与所述所识别的指令相关联的功率分布图。
25.如权利要求24所述的计算机,其特征在于,所述用于识别指令的工具包括用于中断处理器的工具;用于取样处理器的程序计数器的工具;以及用于根据所述程序计数器来确定指令的工具。
26.如权利要求24所述的计算机,其特征在于,所述用于接收的工具包括用于查询功率测量电路的工具;以及用于根据所述查询从功率测量电路接收数字功率读数的工具。
27.一种功率测量电路,其特征在于,包括用于测量在嵌入式设备上执行的软件指令的功耗的工具;用于转换模拟功率测量至数字功率测量的工具;以及用于响应来自主机计算机的查询而传输所述数字功率测量到主机计算机的工具。
28.如权利要求27所述的功率测量电路,其特征在于,还包括用于存储数字功率测量的工具。
29.一种计算机,其特征在于,包括处理器;存储在存储器中并可在处理器上执行的指令;以及功率测量电路,配置为测量在每条指令执行期间由处理器消耗的功率。
30.如权利要求29所述的计算机,其特征在于,还包括被集成为功率测量电路的一部分的模数转换器,并配置为将模拟功率信号转换成数字功耗数据。
31.如权利要求29所述的计算机,其特征在于,实现为选自包括以下内容的组中的设备嵌入式移动PDA(个人数字助理);蜂窝电话;智能电话;笔记本计算机;桌面PC(个人计算机);工作站;服务器;大型计算机;以及因特网器具。
32.一种系统,其特征在于,包括功率分布图测定器,配置为将识别的软件指令与在所述识别的软件指令执行期间消耗的功率量相关联;查找表,具有用于识别所述识别的软件指令的信息;以及由所述功率分布图测定器生成的功率分布图,该分布图具有功耗值和识别的软件指令,每个功耗值与相应的识别的软件指令配对。
33.如权利要求32所述的系统,其特征在于,还包括功率测量电路,配置为测量在识别的软件指令执行期间消耗的功率量;以及模数转换器,配置为所述功率测量电路的一部分,以将模拟功耗测量转换成数字功耗数据。
34.如权利要求33所述的系统,其特征在于,所述功率测量电路是在其上执行识别的软件指令的目标计算设备的一个组件。
全文摘要
描述了用于分布图测定在处理器上执行的软件指令的功耗的系统和方法。功率测量电路记录执行各种软件指令的处理器的功耗级别。分布图测定工具跟踪和识别在处理器上正在执行的指令并且产生在指令与在执行那些指令期间消耗的功率之间的关联。功率分布图使能够精确地分离和识别与在执行那些指令期间消耗的功率量有关的指令。
文档编号G06F1/28GK1577219SQ200410063250
公开日2005年2月9日 申请日期2004年6月30日 优先权日2003年6月30日
发明者J·D·阿塞姆, 杨永琦, A·吉格尔, J·D·米德基弗 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1