监控过程性能的方法和装置的制作方法

文档序号:6428188阅读:142来源:国知局
专利名称:监控过程性能的方法和装置的制作方法
背景技术
如今,诸如计算机和蜂窝电话的许多电子设备,都使用包括控制这些设备操作的指令的软件。这些指令有时被称为软件程序或软件过程,或者简单地称为软件或过程。
在计算设备中运行的一些过程可能对计算设备的性能有不利影响。这种低效/低产的过程的一个例子就是对输入/输出(I/O)设备进行许多次访问的过程。如果该过程在等待I/O设备响应时将时间花在空闲状态,则这可能对计算设备的性能有不利影响,因为该过程没有在有效地使用该设备的硬件资源。
因此,仍需要有在电子设备中执行软件的更好方法。


在本说明书的结束部分特别指出并清楚声明了被视为本发明的主题。然而,通过参考以下结合附图的详细描述,将最好地理解本发明的机构和操作方法以及其目的、特征和优点,所述附图中图1是根据本发明实施例的计算设备的框图;和图2是根据本发明实施例的监控过程的方法的流程图。
具体实施例方式
在以下的详细描述中,陈述了大量具体细节以提供对本发明的透彻理解。然而,本领域技术人员应当理解到,没有这些具体细节也可以实施本发明。在其他情况下,为了不混淆本发明,没有详细描述公知的方法、过程、部件和电路。
本发明的实施例可以包括用于执行这里的操作的装置。该设备可以为所需目的特别构造,或者它可以包括通用计算设备,该通用计算设备由设备中存储的程序选择性地激活或者重新配置。这样的程序可以存储在存储介质上,例如但不限于包括软盘、光盘、CD-ROM、磁光盘的任何类型的盘、只读存储器(ROM)、随机访问存储器(RAM)、电可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁或光卡、或者适合于存储电指令并能够耦合到计算设备的系统总线上的任何其他介质。
此处所说的方法并不固有地与任何特定计算设备或其他装置相联系。根据本发明教导的程序可以与各种通用系统一起使用,或者构造更专用的装置来执行所需方法也可能是方便的。以下描述将出现用于多种这些系统的所需结构。此外,本发明的实施例没有参考任何具体的编程语言进行描述。应当了解到可以使用多种编程语言来实现此处描述的本发明的教导。
在以下描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解到并非想要将这些术语彼此成为同义词。相反地,在具体实施例中,“连接”可以用来表示两个或多个元件是相互直接的物理或电接触。“耦合”可以指两个或多个元件是直接的物理或电接触。然而,“耦合”还可以指两个或多个元件没有彼此直接接触,但仍然彼此配合或相互作用。
参考图1,描述了根据本发明的实施例100。实施例100包括计算设备50。计算设备50可以在多种便携式通信系统中使用,例如移动通信设备(例如蜂窝电话机)、双向无线电通信系统、单向寻呼机、双向寻呼机、个人通信系统(PCS)、便携式计算机、个人数字助理(PDA)等。然而应当指出本发明的范围和应用根本不限于这些示例。例如,可以使用本发明的其他应用包括非便携式电子应用,例如在蜂窝基站或视频装备中。
在此示例中,计算设备50包括用于执行软件程序的处理单元10、存储程序的存储器20、连接到处理单元10的输入/输出(I/O)设备30、和连接到处理单元10的监控单元40。此外,电源60连接到处理单元10并可以提供工作电压或工作电势源,例如标示为VDD的电压。时钟70连接到处理单元10并可以提供标示为CLK的时钟信号。虽然存储器20、I/O设备30、监控单元40、电源60和时钟70被示出为直接连接到处理单元10,但本发明的范围在此方面不受限制。例如,存储器20可以经由存储器控制器(未示出)耦合到处理单元10。
通过改变信号CLK的频率可以改变处理单元10的运行速度。通过改变工作电压VDD或改变信号CLK的频率,可以改变处理单元10的功率消耗。例如,通过降低VDD或降低信号CLK的频率,可以减少处理单元10的功率消耗。
处理单元10例如可以包括微处理器、数字信号处理器、微控制器等。处理单元10可以用来执行控制计算设备50操作的软件。此外,处理单元10可以用来执行用于处理从I/O设备30接收的数据的程序,虽然本发明的范围在此方面不受限制。
被处理单元10执行的指令可以存储在存储器20中,虽然本发明的范围在此方面不受限制。存储器20可以是易失性的或非易失性的存储器,虽然本发明的范围在此方面不受限制。存储器20例如可以包括包括软盘、光盘、CD-ROM、磁光盘的盘、只读存储器(ROM)、诸如动态RAM(DRAM)或静态RAM(SRAM)的随机访问存储器(RAM)、电可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁或光卡、或者适合于存储电指令的任何其他类型的介质。
I/O设备30可以用来从用户接收数据或者向用户发送数据。I/O设备30例如可以包括键盘、显示器、打印机,尽管本发明的范围在此方面不受限制。
监控单元40可以用来监控在处理单元10中运行的软件过程的性能。在本实施例中,监控单元40可能适于当过程被执行时来监控在处理单元10中运行的软件过程。具体地,监控单元40可能适于确定该过程是否运行在预定的性能阈值水平处或之下。
处理单元10和监控单元40可以在一个微处理器中实现,而不是实现为单独的设备。例如,处理单元10可以是处理器内核而监控单元40可以是微处理器中的性能监控单元(PMU)。或者,监控单元40的功能可以使用软件而不是硬件来实现。
现在参考图2,提供了一种根据本发明实施例的方法。此实施例可以从执行软件过程开始,即框200。此方法可以使用图1的设备50来实现。该软件过程可以使用处理单元10来执行,处理单元10可以采用操作系统来控制该软件过程的执行。或者,处理单元10可以不使用操作系统而直接执行该软件过程。
过程可以在执行时被监控以确定该过程是否有效运行,即框210。举例来说,监控单元40(图1)可以被用来监控在处理单元10内运行的过程。可以用多种方法来定义和确定软件过程的效率或性能。例如,如果软件过程没有产生想要的或希望的效果,或者在比如时间、能量等因素方面很浪费,则该软件过程可以被定义为低效的。作为例子,软件过程的性能可以按照执行该过程时计算设备50所消耗的功率来测量。在另一个例子中,如果过程在等待I/O设备或存储器响应上花费了过多的时间,则这可以被定义为对计算设备资源的低效使用,因为时钟周期被花在等待上而不是执行另一个有效的指令。
通过监控与性能相关的事件发生的次数,可以确定软件过程的性能。与性能相关的事件的例子包括与存储器相关的处理器延迟、高速缓存丢失(例如指令和/或数据)、对处理器的繁重使用(例如浮点运算)引起的延迟、等待I/O设备或存储器响应时处理器处于空闲状态的时间量等。应当指出,此与性能相关的事件的列表不是穷尽性的,并且本发明可以适于监控可以表示关于例如时间或能量等因素的性能的任何事件或事件的组合。
举例来说,处理单元10可以将监控单元40编程成来寻找已定义的与性能相关的事件,并且随后如果已定义事件发生则通知处理单元10。监控单元40可以是被编程来监视与存储器相关的处理器延迟的PMU。此PMU可以包括用于对与存储器相关的处理器延迟计数的计数器。在运行过程前,处理单元10可以将监控单元40编程成,在与存储器相关的处理器延迟被计数超过10,000次时发送中断。在此示例中,预定的性能阈值水平或已定义事件是10,000次与存储器相关的处理器延迟。如果已经发生超过30,000个时钟周期和10,000次与存储器相关的处理器延迟,则处理单元10内的操作系统可以从此信息确定该过程是“存储器绑定(memorybound)”的。作为响应,操作系统可以终止或暂停该过程,并进入低功率模式的运行以减少计算设备的功率消耗,由此提高计算设备50的性能。在另一个实施例中,与性能相关的事件或者阈值水平可以被定义为I/O访问的最大次数。监控单元40可以通过对I/O设备30被当前执行软件过程所访问的次数进行计数,来检测或识别是否已经到达所述阈值水平。如果I/O访问的次数大于预定的I/O访问次数,则监控单元40可以通过向处理单元10发送中断来通知处理单元10。此中断可以用作通知处理单元10已定义事件已经发生的警告。
监控单元40可以被实现为非侵入性地监控软件过程。换句话说,监控单元40可以适于当过程在执行的同时监控该软件过程,而不是暂停过程的执行。这被称为监控活动过程。活动过程是当前正在运行或执行的过程。实现监控活动过程的一种方法是监控软件过程的执行结果,而不是直接监控该过程。例如,I/O设备30被软件访问的次数可以直接从I/O设备30获得,而不用通过直接监控该软件或处理单元10。在另一个实施例中,可以通过监控处理单元10和I/O设备30之间的数据总线上的数据来获得此信息,尽管本发明的范围在此方面不受限制。
监控单元40可以监控在处理单元10中运行的软件过程,以确定该过程是否有效运行,即框220。如果软件过程没有有效运行,则可以改变处理单元10的功率消耗,即框230。通过改变处理单元10的功率消耗,可以提高计算设备50的性能。应当理解到,因为处理单元10是计算设备50的一个部件,因此改变处理单元10的功率消耗也可以改变计算设备50的功率消耗,尽管本发明的范围在此方面不受限制。
在图1所示的示例中,监控单元40对来自处理单元10的与性能相关的事件信息(标记为“事件”)进行评价。如果监控单元40确定该软件过程在预定的性能阈值水平之下运行,则监控单元40可以通过向处理单元10发送中断信号(标记为“中断”),来抢占当前在处理单元10中运行的软件过程。
如果处理单元10采用操作系统,则该操作系统可以响应该中断而终止或暂停该过程。操作系统可以执行不同的过程以更有效地使用计算设备50,例如,通过增大或减小计算设备50的功率消耗。在另一个实施例中,响应于来自监控单元40的中断,可以减小信号CLK的频率以降低计算设备50的功率消耗。在另一个实施例中,可以响应于来自监控单元40的中断而减小处理单元10的工作电压(VDD)。此外,响应于来自监控单元40的中断,可以采用上述用于改变功率消耗的方法的任何组合。例如,响应于来自监控单元40的中断,可以将工作电压(VDD)和信号CLK的频率两者都减小。应当注意,本发明的范围不限于用于改变计算设备50的功率消耗的这些方法。可以响应于识别出低效软件过程而采用改变功率消耗的其他方法。
在便携式电子应用中,可能希望减小功率消耗以提高电池寿命。因此,如果软件过程对功率消耗有不利的影响,则该软件过程可以被暂停和延迟,直到该便携式通信设备连接到固定电源(例如插入到墙上电源)。这对节约与该过程有关的功率来说是所希望的,否则该过程将耗尽电池。在其他应用中,如果软件过程没有产生想要的结果,则可能希望增大功率消耗。例如,如果过程表现出差的性能,则可以提高计算设备的时钟速率以在相对更短的时间量内完成该过程。通过提高时钟速率,可能增大计算系统的功率消耗。在执行该低效过程后,计算设备可以进入低功率模式的运行。
虽然此处已经图示并描述了本发明的某些特征,但本领域技术人员现在将想到许多改进、替代、变化和等价方案。因此,应当理解到,所附权利要求意于覆盖落入本发明真正精神内的所有这些改进和变化方案。
权利要求
1.一种方法,包括如果活动过程在预定性能水平处或之下运行,则改变设备的功率消耗。
2.如权利要求1所述的方法,其中改变所述设备的功率消耗包括抢占所述活动过程。
3.如权利要求1所述的方法,其中改变所述设备的功率消耗包括暂停所述活动过程的运行;以及执行第二过程。
4.如权利要求1所述的方法,其中改变所述设备的功率消耗包括降低所述设备的功率消耗。
5.如权利要求1所述的方法,其中改变所述设备的功率消耗包括增大所述设备的功率消耗。
6.如权利要求1所述的方法,其中改变所述设备的功率消耗包括降低所述设备的工作电压。
7.如权利要求1所述的方法,其中改变所述设备的功率消耗包括降低所述设备的时钟速度。
8.如权利要求1所述的方法,还包括监控所述活动过程,以确定所述活动过程是否在所述预定性能水平之下运行。
9.如权利要求8所述的方法,其中监控所述活动过程包括对已定义的与性能相关的事件发生的次数进行计数。
10.如权利要求9所述的方法,其中对已定义的与性能相关的事件发生的次数进行计数包括,对输入/输出(I/O)设备被所述活动过程访问的次数进行计数。
11.如权利要求9所述的方法,其中所述监控还包括,确定所述已定义的与性能相关的事件的发生次数是否大于预定的发生次数。
12.一种方法,包括在过程执行的同时,监控所述过程以确定是否已经发生已定义事件,其中所述已定义事件指示所述过程的效率;以及在所述已定义事件发生后减小电压势。
13.如权利要求12所述的方法,其中所述监控包括对与性能相关的事件的发生次数进行计数。
14.如权利要求13所述的方法,其中当与性能相关的事件的发生次数大于预定的最大发生次数时,则确定所述已定义事件发生。
15.如权利要求13所述的方法,其中所述与性能相关的事件是存储器访问。
16.如权利要求12所述的方法,还包括一发生所述已定义事件就产生中断信号,其中在产生所述中断信号后减小所述电压势。
17.一种包括存储介质的制品,所述存储介质上存储有指令,当所述指令被计算平台执行时,如果活动过程在预定性能水平之下运行则所述指令导致改变设备的功率消耗。
18.如权利要求17所述的制品,其中改变功率消耗包括降低所述设备的工作电压。
19.如权利要求17所述的制品,其中改变功率消耗包括降低所述设备的时钟速度。
20.一种便携式通信设备,包括静态随机访问存储器;耦合到所述静态随机访问存储器并适于执行过程的处理单元;和监控单元,所述监控单元适于在所述过程执行的同时监控所述过程,并且一旦发生指示所述过程效率的已定义事件时适于通知所述处理单元,其中所述处理单元响应于来自所述监控单元的通知,而减小所述便携式通信设备的功率消耗。
21.如权利要求20所述的便携式通信设备,其中所述处理单元是处理器内核。
22.如权利要求20所述的便携式通信设备,其中所述监控单元是性能监控单元。
23.如权利要求20所述的便携式通信设备,其中所述静态随机访问存储器适于存储所述过程。
24.如权利要求20所述的便携式通信设备,还包括耦合到所述处理单元的输入/输出设备。
全文摘要
简单地说,根据本发明的一个实施例,一种便携式通信设备具有处理单元和监控单元。所述监控单元在软件过程正在执行的同时监控该过程的性能。如果该过程低效地执行,则该处理单元可以改变便携式通信设备的功率消耗。
文档编号G06F1/04GK1605055SQ02819240
公开日2005年4月6日 申请日期2002年9月27日 优先权日2001年9月28日
发明者迈克尔·W·莫罗 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1