确定cpu使用率的与操作系统无关的方法和系统的制作方法

文档序号:6362141阅读:222来源:国知局
专利名称:确定cpu使用率的与操作系统无关的方法和系统的制作方法
技术领域
本发明领域通常涉及中央处理单元(CPU)。尤其是,本发明领域涉及确定CPU使用率。更尤其是,本发明领域涉及一种确定在一个数据处理系统内的CPU使用率的与操作系统无关的方法和系统。
背景技术
在大多数的现代多编程的数据处理或者计算机系统中,各个任务或者用户应用争取处理时间以在一个中央处理单元(CPU)或者类似的处理设备上执行。在甚至最高多任务处理环境中的动作趋向于是猝发性的,其具有继之以强烈的处理过程动作周期的延迟或者不活动周期。因此,由于种种原因分析CPU及其它类似的数据处理系统设备的使用率是有用的。例如,在其中极少或者没有用户任务被调度的周期期间高处理器利用率可以是病毒程序或者某些导致系统失效或者其他低效系统特性的任务调度中的某些可校正错误的一个标记。理论上,可以通过在一个采样间隔上积累CPU空闲时间来确定处理器不活动的时间百分比以确定CPU使用率。为了完成这个,OS保持一个准备好运行、即不等待某些事件以再继续执行的任务或者线程的列表。当这个准备好运行的列表为空时,没有任务正被执行,而且处理器是空闲的。因此,读取一个与CPU无关的计时器,而且处理器实质上是不活动的。这通过把处理器放入一个预定义的处理器性能状态中来完成,其中处理器性能状态诸如由2000年7月27日、众所周知的Advanced Configuration and Power InterfaceSpecification(高级配置和电源接口说明)的修订版2.0(ACPI)定义的C2或者C3状态。在C2状态中,从处理器的功能单元中除去时钟信号,同时它的存储器子系统保持活动并且可由其它设备“探听”。在一个C3状态中,还从数据处理系统的存储器部分中除去时钟信号并且进入一个所谓的“深度睡眠”状态。当一个新任务被添加到准备好运行的列表中时,处理器处于一个活动状态(诸如CO ACPI状态)中,并且计时器再次被读取。在第一和第二计时器读取之间的差值(乘以计时器周期)则表示CPU的空闲时间。经由一个采样间隔的这个时间积累被用于确定该CPU的使用率(CPU时间被空闲度过的百分比)。不幸地是,这个CPU使用率的测量难以经由一个支持的应用程序编程接口(API)在OS之外计算。这是因为API通常不知道仅仅为OS已知的准备好运行的任务列表。

发明内容
公开了一种确定在一个数据处理系统内的CPU使用率的与操作系统无关的方法和系统。更具体的是,依据本发明的一个实施例,提供了一种用于确定CPU使用率的方法,其包含监控来自一个CPU核心的时钟信号;以及在一个采样间隔期间、基于该时钟控制信号计算CPU核心被用来执行作业的时间周期。在下面详细说明中,阐述了许多具体的细节以便提供对本发明的一个彻底理解。然而,对于本技术领域的普通专业人员来说,显而易见这些细节不是用来实践本发明所要求的。在其他情况中,没有显示众所周知的结构、资料、电路、处理过程和接口或者进行详细描述以便不会不必要地弄模糊本发明。


图1A说明了一个可和本发明一起使用的通用数据处理系统;图1B说明了在图1A中描述的数据处理系统的一个现有技术计算机体系结构;图2更详细地说明了在图1B中描述的计算机体系结构的一部分;图3说明了一个依据本发明一个实施例、描述一个数据处理系统的操作的结构系统框图;图4到6显示了依据本发明实施例执行的操作流程图。
具体实施例方式
在这个说明书中对本发明的“一个实施例”或者“一实施例”的引用意指结合该实施例描述的一个特定特征、结构或者特点被包含在本发明的至少一个实施例中。在该说明书不同位置中短语“在一个实施例中”的出现没有必要全部涉及同一个实施例,并且也不是和其它实施例不相容的分离或者替换的实施例。此外,描述了可以由某些实施例呈现而不由其它实施例呈现的各个特征。类似地,描述了可以被要求用于某些实施例而不是其他实施例的各个要求。
在这个描述中,为由California、Santa Clara的Intel公司使用的命名法所特有的各个术语将用来描述信号和结构部件。这些术语的使用仅仅被用于是示例并且因此不是限制。
现在参考图1a,说明了一个可以和本发明一起使用的通用数据处理系统100。数据处理或者计算机系统100由一个系统单元102、诸如显示器104和打印机110的输出设备、以及诸如键盘108、和鼠标106输入设备组成。数据处理系统100通过输入设备108和106的操作或者直接从诸如磁盘112和网络连接接口(没有显示)的固定或者可移动介质存储设备中接收数据用于处理。数据处理系统100则处理数据并且经由诸如显示器104、打印机110、类似磁盘112或者网络连接接口的固定或者可移动介质存储设备给出产生的输出数据。
现在参考图1b,描述了诸如由图1a说明的数据处理系统100的部件的一个高级框图。在一个传统的计算机系统中,系统单元102包含一个诸如经由一条处理器系统总线(PSB)连接到一个二级(L2)高速缓存122的中央处理单元(CPU)120的处理设备。处理器系统总线(PSB)114反过来经由一个北电桥电路124与一条诸如本地总线116的扩展总线和一个存储器126相连。本地总线116可以包含一个外围部件互连(PCI)、视频电子标准协会(VESA)总线等等,其紧密地与处理器120和处理器系统总线114相连以允许高速访问诸如显示设备128的选择设备。
存储器126可以包含只读(ROM)和/或随机访问(RAM)存储设备,诸如一个能够存储要由CPU 120执行的数据和指令的同步动态随机存取存储器(SDRAM)模块。经由在北电桥电路124内的一个存储控制器(没有显示)提供对在存储器126内存储的数据与指令的访问。L2高速缓存122被类似地使用,一般以一种分层的方式,来存储用于由CPU 120直接存取的数据与指令。显示设备128可以包含一个诸如显示器104的阴极射线管(CRT)显示器,液晶显示器(LCD),或者一个用于向一个计算机用户显示各种数据的类似设备。例如,可以在显示设备128上向用户给出图像、图形、或者文本信息。数据处理系统100的系统单元102还具有一条诸如工业标准结构(ISA)总线的扩展或者“兼容”总线118,以及一个连接它到本地总线116的南电桥电路134,以便于连接其他、相对缓慢的设备到系统100。南电桥电路134包含一条通用串行总线(USB)端口138以及其他用于诸如网络接口卡130的设备、诸如一个磁性硬盘驱动器132的数据存储设备、以及诸如扬声器或者声卡的音频设备140的其他直接连接。
如说明的那样,其他不直接与南桥接器134相连的设备可以经由扩展总线118连接到系统100。一个软盘驱动器(FDD)144在诸如磁盘112的可移动介质存储设备上提供附加的数据存储器性能,以及诸如键盘108和光标控制设备136的输入设备每个都以这样的方式与扩展总线118相连,以传递数据、指令、和/或命令选择到中央处理单元120。光标控制设备136可以包含一个诸如图1a中的鼠标106的传统鼠标,跟踪球、或者任何能够传送期望光标操作的其他设备。类似地,扩展总线118包含一个具有标准的串行和并行端口功能用于连接诸如打印机110的其他I/O设备到该系统的输入/输出(I/O)控制器。
本发明的系统包含软件、信息处理硬件、以及各个将在下面进行描述的处理步骤。本发明的特征和处理步骤可以以机器或者计算机可执行的指令体现,其被包含在诸如磁盘112的介质内。这些指令能够用来导致一个诸如CPU120、用该指令编程的通用或者专用处理器执行本发明所描述的方法。做为选择,本发明的特征或者步骤可以由包含硬连线逻辑用于执行这些步骤的具体硬件部件执行,或者由程序控制计算机部件和定制硬件部件的任何组合执行。
图2更详细地显示了在图1中描述的计算机体系结构的一部分,以便说明依据本发明的一个实施例是如何实现监控在该CPU核心中的时钟控制信号的。
参见图2,CPU核心120、北电桥电路124和主存储器126如附图1B所示那样。在CPU核心120和北电桥电路124之间的通信经由一条包含处理器系统总线(PSB)114、总线接口200和数据输入/输出(I/O)总线202的数据通道出现。
该总线接口200包含一个时钟控制单元200.1和一个性能监控(PMON)单元200.2。将在下面对在本发明的上下文中的时钟控制单元200.1和PMON单元200.2的功能进行说明。
在图2中显示的计算机体系结构包含多个能够被配置为监控各个涉及CPU核心120的多个方面的性能的可配置性能监控器204(已经示出了其中的仅仅一个)。该性能监控器204包含一个能够经由一个高特权或者O环应用被访问的在冲模上的寄存器(没有示出)。该性能监控器204经由一条性能监控总线206和总线PMON单元200.2和在CPU核心120内的各个其他PMON单元120.1到120.3进行通信。
依据本发明,性能监控器204被配置为监控一种被称为CPU_CLKS_UNHALTED的事件类型。这允许性能监控器204如在下面更详细描述的那样监控来自CPU核心120的时钟控制信号。一个时钟信号210由一个锁相回路(PLL)208产生并且经由一个时钟脉冲门212送到CPU核心120。时钟脉冲门212的目的是每当时钟控制单元200.1产生一个选通信号214时断开或者解声明时钟信号210。该时钟信号还被直接馈送给CPU核心120。具有CPU核心120的大部分部件使用选通信号214。然而,某些部件使用时钟信号210。
通过时钟控制单元200.1产生选通信号214由CPU核心120来控制,其发送停止(HLT)信号216和中断(BREAK)信号218到时钟控制单元200.1来进行控制。CPU核心120发送HLT信号216以便关闭到它的一个功能单元的时钟脉冲。如果总线接口200正忙则HLT信号216被忽略,否则时钟控制单元200.1发送选通信号214用于选通时钟信号210。当时钟信号210要被截止时CPU 120声明BREAK信号218。即使当中断信号218没有被声明时总线接口200也可以由于PSB 114的动作而截止时钟信号210。在这种情况下,CPU核心120继续发送HLT信号216直到PSB 114的动作平息为止。
停止信号216可以直接由软件(微码)或者间接(通过使线程计数器睡眠)间接地产生。
主板逻辑(没有显示)能够产生一个用最少的处理过程通过总线接口200的停止时钟脉冲(STPCLK#)220信号。总线接口200负责把STPCLK#信号220同步到表示一个空转的时钟信号210或者系统时钟。
可以有很多为什么CPU核心120声明HLT信号216的不同的原因。这些原因包含一个自动停机指令、一个STPCLK#声明、内部故障、等等的执行。导致BREAK信号218被声明的事件包含STPCLK#解声明、外部中断、重置、等等。
时钟控制单元200.1使用在时钟信号210的一个时钟周期期间产生的HLT信号216和BREAK信号218产生一个被称为PMCPUCLKUNHALTED#的信号222。这个信号被馈送到总线PMON单元200.2。
依据本发明的技术,一个以环0驱动器形式的高特权应用被用来配置性能监控器204以监控一个被称为是CPU_CLKS_UNHALTED的事件。每当检测到CPU_CLK_UNHALTED事件选择时,PMON总线200.2驱动PMCPUCLKUNHALTED#信号222到PMON总线206上。这导致性能监控器204的一个寄存器在每个检测到PMCPUCLKUNHALTED#信号222的声明的核心时钟脉冲上递增。
因此实际上,性能监控器204起一个测量CPU核心120已经请求了时钟控制单元200.1以允许时钟信号210被声明的一段时间(或者跳动点)的计数器的作用。因为当时钟信号210被解声明时,CPU核心120没有执行作业(即CPU120没有执行应用程序代码),测量PMCPUCLKUNHALTED#信号222被声明的一段时间给出了在CPU核心120实际上执行作业的系统时钟周期期间中一段时间的一个指示。
本发明的实施例包含一个包含高特权或者环0驱动器以在如上所述的时间采样间隔期间配置和读取性能监控器204的使用率应用程序。此外,该使用率应用程序包含一个低特权或者环3应用程序,其通过使用环0驱动器来控制性能监控器204以监控PMCPUCLKUNHALTED#信号222,来为CPU核心120计算使用率。
现在参考图3,其说明了一个描述依据本发明的数据处理系统的操作的结构系统框图。在说明v实施例中,多个诸如CPU使用率304的应用程序302经由一个诸如来自微软公司的WindowsTM操作系统的操作系统300、一个或多个设备驱动程序306、和基本输入/输出系统(BIOS)代码310和包含CPU 120的各个平台硬件设备308进行交互。说明的系统相对于各个应用程序302的多任务和在应用程序302和平台硬件308之间的通信是中断驱动的。
因此,在本发明的一个实施例中,一个请求来自平台硬件308内部的硬件资源的应用程序302能够导致一个诸如系统控制中断(SCI)或者系统管理中断(SMI)的中断被产生以及一个中断处理程序例程被响应地执行。设备驱动程序306和BIOS 310则便于在操作系统300和平台硬件308之间的交互作用。在说明的实施例中,BIOS 310包含诸如附着于数据处理系统100、并且相对于数据的实际传输是有用的各个设备308的物理设备地址的信息。相比起来,设备驱动程序306一般具体到一个特定的硬件设备而且通常涉及在各个设备格式之间的数据转换。
使用率应用程序304是一个定期执行小程序或者应用程序。每当该小程序被执行时,如下所述计算一个CPU使用率。
如上所述,只有当CPU核心120不在一个空闲状态中时性能监控器204才递增。因此,依据本发明的一个实施例,如附图4中说明的那样,环0驱动器应用程序306基于CPU 120的电源状态起停性能监控器204。
参见图4,在块400处,初始化或者启动平台硬件308。在402处,硬件308确定CPU 120是否在一个低功率状态中。如果CPU 120处于低功率状态中,则在404处,启动性能监控器204。如果在本发明中的技术的执行期间的任何阶段处,硬件308确定CPU 120是在一个低功率状态中,则在块406处停止性能监控器204。
附图中的图5显示了一个由使用率应用程序304的环3部件执行的操作的流程图。
参见图5,在块500处初始化该小程序。在块502处,性能监控器204被配置为监控该CPU_CLKS_UNHALTED事件。在块504处,一个系统计时器被读取并且被保存为一个称作Time0的值。在块506处允许一个定期回调事件。这允许在附图6中显示的操作被定期执行,例如每300毫秒执行一次。可以以各种方式实现在块506处的允许定期回调,这些方式包含基于计时器的中断,系统管理事件、或者为时间的离散间隔而把一个线程置为睡眠的、由操作系统控制的睡眠请求。
现在参考附图6,在块600处启动定期回调事件。在块602处,读取性能监控器204并且它的值被保存为一个被称为“跳动点”的值。在块604处,重置性能计数器204。执行这个以便防止溢出。在块606处,读取系统计时器并且把它保存为Timer。在块608处计算一个“ElapsedTime”,其中ElapsedTime=(Time1-Time0)*TickPeriod,并且其中TimePeriod是在性能监控器204每个跳动点之间的周期。
在块610处更新时间值,其中Time1被保存为Time0。这保证为经过的时间计算的值是在系统计时器连续读取之间的实际时间间隔。在块612处计算一个有效的频率,其中EffectiveFreq=Ticks/ElapsedTime。在块614处,计算一个用于CPU 120的百分比使用率其中Percentage_Utilization=(EffectiveFreq/Actual Frequency)×100。
不是所有处理器都具有一个诸如现在在附图2中显示的计算机体系结构。因此,在这发明的一个实施例中,使用率小程序304为一个处理器确定一个它在其上运行的系统类型。如果这类型是一个预定的类型,则执行如上所述用于计算CPU使用率的技术。这预定类型包含奔腾4系列的微处理器或者一个更高的系列和Banias系列的微处理器。然而,如果决定该处理器来自于一个比奔腾4系列处理器低的处理器系列,例如奔腾3系列处理器,则使用在一起代决美国专利申请09 750,676中描述的、用于计算CPU使用率技术来计算CPU使用率。
为了这个说明一个机器可读介质包含任何以一种可由一个机器(例如计算机)读取的形成提供(即存储和/或传输)信息的机制,例如,一机器可读的介质包含只读存储器(ROM);随机存取存储器(RAM);磁盘存储器介质;光存储介质;闪速存储器设备;传送信号的电、光、声音或者其他形式(例如载波、红外线信号、数字信号、等等);等等。
从这个描述中明显将会知道本发明的各个方面可以至少部分地以软件形式体现。在其他实施例中,可以结合软件指令使用硬件电路来实现本发明。因此,本发明的实施例不局限于硬件电路和软件的任何具体组合。
虽然已经参考具体的示例实施例描述了本发明,显然能够对这些实施例进行各种修改和改变而不背离本发明如在权利要求中阐述的那些宽阔的精神范围。因此,说明书和附图只作为一个说明意义,而不是起限制作用。
权利要求
1.一种方法,包含监控来自一个CPU核心的时钟控制信号;以及基于该时钟控制信号在一个CPU核心用来执行作业的采样间隔期间计算一个时间周期。
2.如权利要求1所述的方法,其特征在于该监控包含在一个时钟控制单元中,从CPU核心中接收导致该时钟控制单元分别起停一个到该CPU核心的时钟信号的停止和中断信号;以及基于该停止和中断信号产生一个时钟控制单元信号,该时钟控制单元信号指示在到该CPU核心的时钟信号被启动的采样间隔期间的计时量。
3.如权利要求2所述的方法,其特征在于该监控进一步包含发送该时钟控制单元信号到在该总线接口中的性能监控单元,其中性能监控单元是该性能监控逻辑的一部分,以监控与CPU性能有关的可配置事件。
4.如权利要求3所述的方法,其特征在于该监控进一步包含把该性能监控单元配置为把该时钟控制单元信号驱动到一条性能监控总线上,该性能监控总线便于在该性能监控逻辑部件之间的通信。
5.如权利要求4所述的方法,其特征在于该监控进一步包含把该性能监控逻辑寄存器配置为当性能监控总线单元把该时钟控制单元信号驱动到性能监控总线上时,进行递增。
6.如权利要求5所述的方法,其特征在于该计算包含在采样间隔中读取该寄存器一次;并且把该读取值在采样间隔上进行划分以获得一个用于该CPU核心的有效频率。
7.如权利要求6所述的方法,进一步包含在它的每次读取之后重置该寄存器。
8.如权利要求2所述的方法,其特征在于该时钟控制单元被集成到一个桥接在处理器系统总线和CPU核心之间的通信的总线接口中。
9.一种方法,包含(a)把一个性能监控器配置为监控一个指示何时到一个CPU核心的时钟信号停止了时的事件;(b)在一个采样间隔期间读取该性能监控器一次以获得一个值;以及(c)通过把该值由该采样间隔划分来计算该CPU核心的一个有效频率。
10.如权利要求9所述的方法,其特征在于该事件是一个被称为是CPU_CLKS_UNHALTED的事件。
11.如权利要求10所述的方法,进一步包含在读取之后重置性能监控器;以及为每个采样间隔重复步骤(b)和(c)。
12.如权利要求11所述的方法,进一步包含把该有效频率表示为一个用于该CPU核心的实际频率的百分比。
13.一种方法,包含确定一种类型的微处理器;如果该类型是一个预定义类型,则配置一个性能监控器以监控一个指示何时到一个CPU的时钟信号停止了的事件;在一个采样间隔期间读取该性能监控器一次以获得一个值;以及通过把该值由该采样间隔划分来计算用于该CPU核心的一个有效频率。
14.如权利要求13所述的方法,其特征在于该事件是被称为CPU_CLKS_UNHALTED的事件。
15.如权利要求14所述的方法,其特征在于只有当CPU核心不在一个低功率状态中的话才执行步骤(a)和(b)。
16.如权利要求13所述的方法,其特征在于该预定义类型是从包含奔腾4系列微处理器,和Banias系列微处理器中选出来的。
17.一个具有存储其上的一个指令序列的计算机可读介质,当该指令序列由一个处理系统执行时导致该系统执行这样一个方法,该方法包含监控来自一个CPU核心的时钟控制信号;以及基于该时钟控制信号在一个CPU核心用来执行作业的采样间隔期间计算一个时间周期。
18.如权利要求17所述的计算机可读介质,其特征在于该监控包含在一个时钟控制单元中,从CPU核心中接收导致该时钟控制单元分别停止和启动一个到该CPU核心的时钟信号的启动和中断信号;以及基于该停止和中断信号产生一个时钟控制信号,该时钟控制信号单元信号指示在到该CPU核心的时钟信号被启动的采样间隔期间的计时量。
19.如权利要求18所述的计算机可读介质,其特征在于该监控进一步包含发送该时钟控制单元信号到在该总线接口中的性能监控单元,其中性能监控单元是该性能监控逻辑的一部分,来监控与CPU性能有关的可配置事件。
20.如权利要求19所述的计算机可读介质,其特征在于该监控进一步包含把该性能监控单元配置为把该时钟控制单元信号驱动到一条性能监控总线上,该性能监控总线便于在该性能监控逻辑部件之间的通信。
21.如权利要求18所述的计算机可读介质,其特征在于该时钟控制单元被集成到一个桥接在处理器系统总线和CPU核心之间的通信的总线接口中。
22.一个具有存储其上的一个指令序列的计算机可读介质,当该指令序列由一个处理系统执行时导致该系统执行这样一个方法,该方法包含(a)把一个性能监控器配置为监控一个指示何时到一个CPU核心的时钟信号被解声明了的事件;(b)在一个采样间隔期间读取该性能监控器一次以获得一个值;以及(c)通过把该值由该采样时间间隔划分来计算该CPU核心的一个有效频率。
23.如权利要求21所述的计算机可读介质,其特征在于该事件是一个被称为是CPU_CLKS_UNHALTED的事件。
24.一个具有存储其上的一个指令序列的计算机可读介质,当该指令序列由一个处理系统执行时导致该系统执行这样一个方法,该方法包含确定一种微处理器类型;如果该类型是一个预定义类型,则配置一个性能监控器以监控一个指示到一个CPU的时钟信号停止了的事件;在一个采样间隔期间读取该性能监控器一次以获得一个值;以及通过把该值由采样间隔时间划分来计算用于该CPU核心的一个有效频率。
25.如权利要求23所述的计算机可读介质,其特征在于该事件是被称为CPU_CLKS_UNHALTED的事件。
26.如权利要求24所述的计算机可读介质,其特征在于只有当CPU核心不处在一个低功率状态才执行步骤(a)和(b)。
27.一个设备,包含一个包含一个CPU核心、一个时钟控制单元、以及一个性能监控器来监控与CPU核心性能有关的可配置事件的硬件平台;以及一个使用率应用程序,其具有特权来把性能监控器配置为在基于来自CPU核心、导致时钟控制单元分别启动和停止一个到该CPU核心的时钟信号的停止和中断信号,在该时钟控制单元声明一个计时信号的采样间隔期间监控一个时间段,其中计时信号指示一个在到该CPU的时钟信号被启动期间的采样间隔期间的一个周期,以及其中该使用率应用程序基于该时间长度计算CPU核心的使用率。
28.如权利要求26所述的设备,其特征在于该使用率应用程序包含一个高特权的驱动器,其把性能监控器配置为监控一个被称为CPU_CLKS_UNHALTED的事件以便监控时间长度。
29.如权利要求27所述的设备,其特征在于该计时信号是一个被称为PMCPUCLKUNHALTED#的信号。
30.如权利要求28所述的设备,其特征在于该使用率应用程序包含一个低特权的小程序来控制该高特权的驱动器以及计算该使用率。
全文摘要
提供了一种方法和设备来监控来自一个CPU核心的时钟控制信号;以及基于该时钟控制信号在一个CPU核心被用来执行作业的采样间隔期间计算一个时间周期。
文档编号G06F1/32GK1495585SQ03132770
公开日2004年5月12日 申请日期2003年9月12日 优先权日2002年9月20日
发明者A·P·查克拉瓦蒂, B·库珀, R·高夫, J·W·霍里甘, A P 查克拉瓦蒂, 霍里甘 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1