CN1308785C - 确定cpu使用率的与操作系统无关的方法和系统 - Google Patents
确定cpu使用率的与操作系统无关的方法和系统 Download PDFInfo
- Publication number
- CN1308785C CN1308785C CNB031327702A CN03132770A CN1308785C CN 1308785 C CN1308785 C CN 1308785C CN B031327702 A CNB031327702 A CN B031327702A CN 03132770 A CN03132770 A CN 03132770A CN 1308785 C CN1308785 C CN 1308785C
- Authority
- CN
- China
- Prior art keywords
- core cpu
- cpu
- signal
- control cell
- clock control
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000005070 sampling Methods 0.000 claims abstract description 30
- 238000012544 monitoring process Methods 0.000 claims description 23
- 238000010009 beating Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000238876 Acari Species 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供了一种方法和设备来监控来自一个CPU核心的时钟控制信号;以及基于该时钟控制信号在一个CPU核心被用来执行作业的采样间隔期间计算一个时间周期。
Description
技术领域
本发明领域通常涉及中央处理单元(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核心的停止和中断信号来执行所述的产生;
给性能监控单元发送时钟控制单元信号以确定所述的值;
当在采样时间间隔期间将时钟控制单元信号驱动到性能监控总线上时,递增所述的值;
通过用所述的值除以该采样时间间隔来计算该CPU核心的一个有效频率。
根据本发明的第二方面,提供了一种方法,包含:
确定一种类型的微处理器;
如果该类型的微处理器是一个预定类型的微处理器,则配置一个性能监控器以监控一个指示何时停止到一个CPU的时钟信号的事件;
在一个采样时间间隔期间读取该性能监控器一次以获得一个值;
产生一个时钟控制单元信号,该时钟控制单元信号表示在该采样间隔期间启动到该CPU核心的时钟信号的次数,其中由CPU核心的停止和中断信号来执行所述的产生;
给性能监控单元发送时钟控制单元信号以确定所述的值;
当在采样时间间隔期间将时钟控制单元信号驱动到性能监控总线上时,递增所述的值;以及
通过用所述的值除以该采样时间间隔来计算用于该CPU核心的一个有效频率。
根据本发明的第三方面,提供了一种设备,包含:
一个CPU核心;
一个时钟控制单元,与CPU核心耦合;以及
一个性能监控器,与CPU核心和时钟控制单元耦合,所述性能监控器监控与CPU核心性能有关的可配置事件,所述性能监控器监控在该时钟控制单元声明来自CPU核心的停止和中断信号的采样间隔期间的一个时间长度,该停止和中断信号导致时钟控制单元分别启动和停止一个到该CPU核心的时钟信号,所述性能监控器还通过计算性能监控器的每个跳动点之间的周期来产生一个值和基于该时间长度计算该CPU核心的使用率,其中读取性能监控器的值并且其值被保存为称为“跳动点”的值,其中通过用一个有效频率除以一个实际频率并且乘以100来计算该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包含一个能够经由一个高特权或者0环应用被访问的芯片寄存器(die register)(没有示出)。该性能监控器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处,读取系统计时器并且把它保存为Time 1。在块608处计算一个“ElapsedTime”,其中:ElapsedTime=(Time1-Time0)*TickPeriod,并且其中TickPeriod是在性能监控器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);磁盘存储器介质;光存储介质;闪速存储器设备;传送信号的电、光、声音或者其他形式(例如载波、红外线信号、数字信号、等等);等等。
从这个描述中明显将会知道本发明的各个方面可以至少部分地以软件形式体现。在其他实施例中,可以结合软件指令使用硬件电路来实现本发明。因此,本发明的实施例不局限于硬件电路和软件的任何具体组合。
虽然已经参考具体的示例实施例描述了本发明,显然能够对这些实施例进行各种修改和改变而不背离本发明如在权利要求中阐述的那些宽阔的精神范围。因此,说明书和附图只作为一个说明意义,而不是起限制作用。
Claims (17)
1.一种方法,包含:
把一个性能监控器配置为监控一个指示何时停止到一个CPU核心的时钟信号的事件;
在一个采样时间间隔期间读取该性能监控器一次以获得一个值;
产生一个时钟控制单元信号,该时钟控制单元信号表示在该采样间隔期间启动到该CPU核心的时钟信号的次数,其中由CPU核心的停止和中断信号来执行所述的产生;
给性能监控单元发送时钟控制单元信号以确定所述的值;
当在采样时间间隔期间将时钟控制单元信号驱动到性能监控总线上时,递增所述的值;
通过用所述的值除以该采样时间间隔来计算该CPU核心的一个有效频率。
2.如权利要求1所述的方法,其中来自CPU核心的停止和中断信号导致时钟控制单元分别启动和停止到该CPU核心的时钟信号并由锁相回路和基于该停止和中断信号产生时钟控制单元信号。
3.如权利要求2所述的方法,其中该性能监控单元监控与CPU性能有关的可配置事件。
4.如权利要求3所述的方法,进一步包含把该性能监控单元配置为把该时钟控制单元信号驱动到一条性能监控总线上,该性能监控总线便于在该性能监控单元的部件之间的通信。
5.如权利要求4所述的方法,进一步包含:在它的每次读取之后重置该性能监控器的寄存器。
6.如权利要求2所述的方法,其特征在于:该时钟控制单元被集成到一个桥接在处理器系统总线和CPU核心之间的通信的总线接口中。
7.如权利要求1所述的方法,其特征在于:该事件是一个被称为是CPU_CLKS_UNHALTED的事件。
8.如权利要求1所述的方法,进一步包含:为每个采样时间间隔重复如下步骤:在该采样时间间隔期间读取该性能监控器一次以获得所述的值,以及通过用所述的值除以该采样时间间隔来计算该CPU核心的该有效频率。
9.如权利要求8所述的方法,进一步包含把该有效频率表示为一个用于该CPU核心的实际频率的百分比。
10.一种方法,包含:
确定一种类型的微处理器;
如果该类型的微处理器是一个预定类型的微处理器,则配置一个性能监控器以监控一个指示何时停止到一个CPU的时钟信号的事件;
在一个采样时间间隔期间读取该性能监控器一次以获得一个值;
产生一个时钟控制单元信号,该时钟控制单元信号表示在该采样间隔期间启动到该CPU核心的时钟信号的次数,其中由CPU核心的停止和中断信号来执行所述的产生;
给性能监控单元发送时钟控制单元信号以确定所述的值;
当在采样时间间隔期间将时钟控制单元信号驱动到性能监控总线上时,递增所述的值;以及
通过用所述的值除以该采样时间间隔来计算用于该CPU核心的一个有效频率。
11.如权利要求10所述的方法,其特征在于:该事件是被称为CPU_CLKS_UNHALTED的事件。
12.如权利要求11所述的方法,其特征在于:只有当CPU核心不在一个低功率状态时才执行:在该采样时间间隔期间读取该性能监控器一次以获得所述的值,以及通过用所述的值除以该采样时间间隔来计算该CPU核心的有效频率。
13.如权利要求10所述的方法,其特征在于:该预定类型的微处理器是从由奔腾4系列微处理器和Banias系列微处理器组成的组中选择出来的。
14.一种设备,包含:
一个CPU核心;
一个时钟控制单元,与CPU核心耦合;以及
一个性能监控器,与CPU核心和时钟控制单元耦合,所述性能监控器监控与CPU核心性能有关的可配置事件,所述性能监控器监控在该时钟控制单元声明来自CPU核心的停止和中断信号的采样间隔期间的一个时间长度,该停止和中断信号导致时钟控制单元分别启动和停止一个到该CPU核心的时钟信号,所述性能监控器还通过计算性能监控器的每个跳动点之间的周期来产生一个值和基于该时间长度计算该CPU核心的使用率,其中读取性能监控器的值并且其值被保存为称为“跳动点”的值,其中通过用一个有效频率除以一个实际频率并且乘以100来计算该CPU的使用率,其中通过用所述的值除以该采样时间间隔来计算所述的有效频率。
15.如权利要求14所述的设备,进一步包括:一个高特权的驱动器,该高特权的驱动器把性能监控器配置为监控一个被称为CPU_CLKS_UNHALTED的事件以便监控该时间长度。
16.如权利要求14所述的设备,其特征在于:该计时信号是一个被称为PMCPUCLKUNHALTED#的信号。
17.如权利要求15所述的设备,进一步包括一个低特权的小程序来控制该高特权的驱动器以及计算该使用率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/251202 | 2002-09-20 | ||
US10/251,202 US7694164B2 (en) | 2002-09-20 | 2002-09-20 | Operating system-independent method and system of determining CPU utilization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1495585A CN1495585A (zh) | 2004-05-12 |
CN1308785C true CN1308785C (zh) | 2007-04-04 |
Family
ID=31992679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031327702A Expired - Lifetime CN1308785C (zh) | 2002-09-20 | 2003-09-12 | 确定cpu使用率的与操作系统无关的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7694164B2 (zh) |
CN (1) | CN1308785C (zh) |
TW (1) | TWI259347B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071688A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Hardware CPU utilization meter for a microprocessor |
US7617488B2 (en) * | 2003-12-30 | 2009-11-10 | Intel Corporation | Method and apparatus and determining processor utilization |
US7761874B2 (en) * | 2004-08-13 | 2010-07-20 | Intel Corporation | Managing processing system power and performance based on utilization trends |
US7836284B2 (en) * | 2005-06-09 | 2010-11-16 | Qualcomm Incorporated | Microprocessor with automatic selection of processing parallelism mode based on width data of instructions |
US7694114B2 (en) * | 2005-06-09 | 2010-04-06 | Qualcomm Incorporated | Software selectable adjustment of SIMD parallelism |
CN100425031C (zh) * | 2006-05-09 | 2008-10-08 | 株洲南车时代电气股份有限公司 | 基于嵌入式操作系统的机车数字网络互联设备及其控制方法 |
US7681054B2 (en) * | 2006-10-03 | 2010-03-16 | International Business Machines Corporation | Processing performance improvement using activity factor headroom |
US7925901B2 (en) * | 2007-03-15 | 2011-04-12 | International Business Machines Corporation | Method and system for estimating processor utilization from power measurements |
US7904287B2 (en) * | 2007-11-13 | 2011-03-08 | International Business Machines Corporation | Method and system for real-time prediction of power usage for a change to another performance state |
US8527801B2 (en) | 2010-06-30 | 2013-09-03 | International Business Machines Corporation | Performance control of frequency-adapting processors by voltage domain adjustment |
CN102402270A (zh) * | 2010-09-08 | 2012-04-04 | 鸿富锦精密工业(深圳)有限公司 | 中央处理器频率调节方法和系统 |
US8769534B2 (en) | 2010-09-23 | 2014-07-01 | Accenture Global Services Limited | Measuring CPU utilization in a cloud computing infrastructure by artificially executing a bursting application on a virtual machine |
US20130151837A1 (en) * | 2011-12-09 | 2013-06-13 | International Business Machines Corporation | Application management of a processor performance monitor |
US9092270B2 (en) * | 2012-09-25 | 2015-07-28 | Oracle International Corporation | Method of SOA performance tuning |
US8972818B2 (en) * | 2012-10-05 | 2015-03-03 | Qualcomm Incorporated | Algorithm for optimal usage of external memory tuning sequence |
US9244521B2 (en) | 2012-12-26 | 2016-01-26 | Intel Corporation | Supporting runtime D3 and buffer flush and fill for a peripheral component interconnect device |
US9348359B2 (en) * | 2013-01-31 | 2016-05-24 | Red Hat, Inc. | Updating a desired tick rate for a kernel |
US20140298074A1 (en) * | 2013-03-29 | 2014-10-02 | GM Global Technology Operations LLC | Method of calculating cpu utilization |
US9696785B2 (en) | 2013-12-28 | 2017-07-04 | Intel Corporation | Electronic device having a controller to enter a low power mode |
CN104216812B (zh) * | 2014-08-29 | 2017-04-05 | 杭州华为数字技术有限公司 | 一种性能监控单元多事件统计的方法和装置 |
WO2018129708A1 (en) * | 2017-01-13 | 2018-07-19 | Alibaba Group Holding Limited | Determining processor utilization of multiprocessing system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002054244A2 (en) * | 2000-12-29 | 2002-07-11 | Intel Corporation | Operating system-independent method and system of determining cpu utilization |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5072376A (en) * | 1988-06-10 | 1991-12-10 | Amdahl Corporation | Measuring utilization of processor shared by multiple system control programs |
US5153535A (en) * | 1989-06-30 | 1992-10-06 | Poget Computer Corporation | Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency |
US5021679A (en) * | 1989-06-30 | 1991-06-04 | Poqet Computer Corporation | Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency |
US5168554A (en) | 1989-10-13 | 1992-12-01 | International Business Machines Corporation | Converting trace data from processors executing in parallel into graphical form |
AU3250393A (en) * | 1991-12-17 | 1993-07-19 | Compaq Computer Corporation | Apparatus for reducing computer system power consumption |
US5752011A (en) * | 1994-06-20 | 1998-05-12 | Thomas; C. Douglas | Method and system for controlling a processor's clock frequency in accordance with the processor's temperature |
US5734585A (en) * | 1994-11-07 | 1998-03-31 | Norand Corporation | Method and apparatus for sequencing power delivery in mixed supply computer systems |
US6018759A (en) * | 1997-12-22 | 2000-01-25 | International Business Machines Corporation | Thread switch tuning tool for optimal performance in a computer processor |
US6816809B2 (en) * | 2002-07-23 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | Hardware based utilization metering |
-
2002
- 2002-09-20 US US10/251,202 patent/US7694164B2/en active Active
-
2003
- 2003-09-04 TW TW092124482A patent/TWI259347B/zh not_active IP Right Cessation
- 2003-09-12 CN CNB031327702A patent/CN1308785C/zh not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002054244A2 (en) * | 2000-12-29 | 2002-07-11 | Intel Corporation | Operating system-independent method and system of determining cpu utilization |
Also Published As
Publication number | Publication date |
---|---|
TWI259347B (en) | 2006-08-01 |
CN1495585A (zh) | 2004-05-12 |
US20040059956A1 (en) | 2004-03-25 |
US7694164B2 (en) | 2010-04-06 |
TW200416516A (en) | 2004-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1308785C (zh) | 确定cpu使用率的与操作系统无关的方法和系统 | |
US7263567B1 (en) | Method and apparatus for lowering the die temperature of a microprocessor and maintaining the temperature below the die burn out | |
KR101029414B1 (ko) | 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템 | |
US7861068B2 (en) | Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling | |
US5692204A (en) | Method and apparatus for computer system power management | |
EP1358557B1 (en) | Operating system-independent method and system of determining cpu utilization | |
US7152169B2 (en) | Method for providing power management on multi-threaded processor by using SMM mode to place a physical processor into lower power state | |
US5564015A (en) | CPU activity monitoring through cache watching | |
US7814485B2 (en) | System and method for adaptive power management based on processor utilization and cache misses | |
US7010708B2 (en) | Method and apparatus for adaptive CPU power management | |
US7219241B2 (en) | Method for managing virtual and actual performance states of logical processors in a multithreaded processor using system management mode | |
US5535400A (en) | SCSI disk drive power down apparatus | |
JP2886491B2 (ja) | 情報処理システム | |
US20110283286A1 (en) | Methods and systems for dynamically adjusting performance states of a processor | |
US7617488B2 (en) | Method and apparatus and determining processor utilization | |
EP2270625A1 (en) | System and method for processor utilization adjustment to improve deep c-state use | |
EP2972826B1 (en) | Multi-core binary translation task processing | |
US7886177B2 (en) | Method and apparatus of collecting timer ticks | |
WO2002097622A2 (en) | A resource management method | |
Drótos et al. | Interrupt driven parallel processing | |
JPH06510616A (ja) | Ms−dosアイドルループを用いる電力節約 | |
JPH06236288A (ja) | コンピュータシステム用消費電力制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20070404 |
|
CX01 | Expiry of patent term |