CN1168501A - 根据中央处理单元运行特征控制计算机运行的方法和系统 - Google Patents

根据中央处理单元运行特征控制计算机运行的方法和系统 Download PDF

Info

Publication number
CN1168501A
CN1168501A CN97102066A CN97102066A CN1168501A CN 1168501 A CN1168501 A CN 1168501A CN 97102066 A CN97102066 A CN 97102066A CN 97102066 A CN97102066 A CN 97102066A CN 1168501 A CN1168501 A CN 1168501A
Authority
CN
China
Prior art keywords
cpu
subjected
calculated amount
amount restriction
economize
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.)
Granted
Application number
CN97102066A
Other languages
English (en)
Other versions
CN1192298C (zh
Inventor
小拉沃恩·F·瓦茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN1168501A publication Critical patent/CN1168501A/zh
Application granted granted Critical
Publication of CN1192298C publication Critical patent/CN1192298C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

一种用于控制被检测CPU动态操作特征的方法和系统,用于在CPU以第一时钟频率工作时检测至少一个CPU动态操作特征。系统根据至少一个动态操作特征确定存在一个设定点中断条件。当存在设定点中断条件时,电路及指令相对于第一时钟频率控制时钟频率。否则,则重复上述确定及控制步骤。本方法和系统还确定CPU是否处于受计算量限制状态。此项操作连同实时节电设备及方法是本发明的特点。

Description

根据中央处理单元运行特征控制计算机运行的方法和系统
本发明涉及计算机中央处理单元(CPU)实时控制,尤其涉及根据检测的动态运行特征,比如由CPU内实时活动程度而产生的CPU温度、温度变化和功耗,而调整中央处理单元(CPU)的时钟频率装置和方法。
在个人计算机工业的早期发展阶段,可移动式或便携带式的计算机是很普遍的。早期的便携式计算机采用大电源,而实际上是一台小型的台式个人计算机。然而,现代的便携式计算机比起台式个人计算机要小,并且重量更轻,用户可以使用与台式计算机所使用的相同的软件。
第一代“便携式”计算机仅采用壁式交流电源工作。更近的或者下一代个人计算机采用电池电源,这样才真正称得上是便携式的。这种便携程度的增大得益于显示技术、磁盘存储容量以及元件重量和体积技术的发展。
尽管这些进步有助于减小便携式计算机的尺寸,但仍然存在操作上的限制。例如,现代的便携式计算机所运行的软件一般与台式个人计算机所运行的软件相同。所以,便携式计算机必须提供所有台式计算机的性能,而不管对以电池供电的便携式计算机才特有的功能限制和考虑。一方面,便携式计算机与台式计算机具有相同的数据流速率,而另一方面,比起台式计算机,在短时间内仅具有有限的功率值,并具有更有限的热耗散能力。现代的便携式计算机对于它们用来工作的软件中的不同平台,不作特定的调节。操作系统(例如MS-DOS)、基本输入/输出系统(BIOS)软件和第三方应用软件对于便携式计算机和台式计算机来说基本上是相同的。对于软件系统处理CPU的不同动态操作特征的方式来说,尤其是这样。
当软件工程师和程序员开发了更强功能的软件系统时,台式计算机在大体所有的系统性能领域中继续提供增强的性能。从更高计算性能CPU的引入,到增大存储器和更快的高性能磁盘驱动器,对台式系统操作的要求正快速增大。便携式计算机制造商除了试图与这些要求保持同步以外,实在没有其他的选择。
然而至今,便携式计算机继续以交流电或者以既大又笨重的电池工作。在试图保持台式计算机性能要求和采用新软件时,某些便携式计算机采用贵重的元件,来降低对电源的要求。但即便是这样,计算机所使用的笨重电池仍然不能长时间供电。这意味着,普通便携式计算机的用户必须采用壁式交流电源工作方式或很短时间的电池工作方式,以便具有第三方软件系统所期待的性能。
在试图设计节电从而以电池工作较长时间的便携式计算机时,某些便携式计算机电源系统在用户不使用计算机时,降低便携式计算机的功耗。其他的便携式计算机设计者在通过不使用键盘时,关闭显示器来节电。虽而用这些系统帮助节电,但由于这些系统妨碍了计算机运行,或者当最大的功耗电发生在计算机内而无法节电,因而都不实用。至今,在操作者使用计算机进行有意义的工作时,没有一个用于便携式计算机的节电系统是节电的。
但这不是便携式计算机供电系统唯一的问题。在现代的便携式计算机系统中,是没有响应于CPU动态操作特征的智能系统的。CPU的动态操作特征包括广泛的特征,包括CPU温度、温度变化、功耗等等。目前还没有控制电池电源节电或最佳使用的方法或系统。还没有响应于计算密集的指令而恰当监视和控制CPU高速运行和密集的电子电路的温度的方法或系统。另外,还不存在这样的方法和系统,来确保当CPU与其输入/输出电路实际上是隔开的时候,不会发生来自CPU动态操作特征的不良影响。可能发生的不良情况或影响的种类包括当CPU执行一组大量的不包括任何输入/输出功能的指令时,CPU过度地耗电或达到过高的温度。
人们需要一种预计CPU中的活动程度并用该预计来自动控制CPU动态操作特征的装置和方法。
人们需要一种能够进行自动活动程度预计的用户修改以及用经修改的预计自动操纵CPU动态操作特征的反馈方法和装置。
人们还需要一种根据控制CPU的动态操作特征提供时钟速度实时减小和恢复,从而使CPU从不工作的时间间隔恢复到其全处理速度,而其方式对软件程序和用户是透明的装置和方法。
再有,人们还需要一种根据动态操作特征来确定CPU可以还是应当根据CPU活动程度进行睡眠、以及根据该确定启动硬件选择器的装置和方法。如果CPU可以睡眠,则硬件选择器在睡眠时钟电平上施加振荡。如果CPU必须工作,那么硬件选择器在高速时钟电平下振荡。
本发明检查CPU的活动以及操作者和任何目前正在工作的应用软件程序的活动状态。本发明实时进行该活动取样,调整CPU的操作强度以控制节电、计算机电力和发热情况以及任何其他的恰当和要求的动态操作特征。这些调整是在CPU循环内完成的,并且不会影响用户对性能或其他软件程序运行的感知。
按照一种较佳实施例,本发明提供了一种控制检测的CPU动态操作特征的方法和装置,并且包括检测至少一个CPU动态操作特征的步骤。该方法和装置在检测操作特征的时候检测CPU的时钟频率。本发明采用的方法的下一个步骤是,按照相对于与至少一个动态操作特征所关联的预定设定点建立的预定关系的至少一个动态操作特征,判定设定点中断情况的存在。如果设定点中断情况存在,本发明的方法和装置或者控制CPU的时钟频率、调整预定设定点,或者以另一种方式控制CPU动态操作特征。另一方面,如果设定点中断情况不存在,则本方法和装置就重复上述判定和控制步骤,从而有效地控制CPU动态操作特征。
因此,当操作系统/BIOS的第三方软件的操作者不在使用计算机,为了节电,本发明可以在需要使用之前快速关断CPU,或者使CPU放慢速度,从而使操作特征变成较慢的状态。需要时,在不影响觉察到的性能的情况下,本系统立即恢复到全CPU运行。这种从“放慢”方式变回到全运行无需用户进行请求,不会因为计算机回到“就绪”状态而造成计算机操作的延迟。
本发明提供的一个技术优点是能够预示或预计CPU的操作特征。通过计算指令数并判定其类型,本发明判定CPU是否将处在受计算量限制的运行模式,在这种模式下,较少或没有输入/输出,并且因此CPU不会放慢速度、没有输入/输出功能。这种预示使得可以判定在受计算量限制的模式期间,一个或多个CPU动态操作特征是否会达到一相关的预定设定点。如果是,则本发明调整时钟频率、修改预定的设定点或改变CPU的运行,以避免形成预定设定点的不利影响。
本发明的再一个技术优点是能够不仅在单个计算机系统中,而且能够在多个或并行CPU计算机系统中提供CPU动态操作特征中的调整。事实上,可以用本发明来构造一组并行CPU,从而在所有的CPU中保持所要求的平均时钟频率,而一个或多个CPU根据相对于CPU的动态操作特征而产生的中断情况进行调整。
在结合附图对较佳实施例作了详细描述以后,本领域的技术人员将清楚地理解本发明的特性和优点。其中:
图1是描述本发明较佳实施例自调节方面的流程图;
图2a-2d是描述本发明实施例使用的主动节电监视器的流程图;
图3描述采用的热控制方法的简化流程图;
图4是本发明使用的受计算量限制的判定步骤的流程图;
图5代表与本发明实施例采用的硬件相关联的主动节电的简化示意图;
图6描述的是本发明一种实施例睡眠硬件的示意图;
图7描述的是本发明另一个实施例睡眠硬件的示意图;
图8包括的是本发明另一种实施例的多个CPU动态操作特征控制性能的流程图。
下面的讨论涉及本发明的节电方面。然而,除了节电或耗电以外,本发明还包括控制其他CPU动态操作特征。
如果检查任一给定系统中计算机活动的时间间隔,CPU和相关的元件具有一使用百分比。例如,如果用户从键盘输入数据,击键之间的时间与CPU的周期相比很长。在这段时间内,计算机可以完成许多事情,比如打印一份报告。即使在打印报告的时间内,还是有时间进行其他的操作,比如更新时钟/日历显示背景。即便是这样,CPU不在使用时,总还有富余的时间。本发明提供了一种在富余时间内关断或放慢CPU速度的方法,从而实现了实时节电,使计算机电池的寿命得以延长。
按照本发明的较佳实施例,为了在MS-DOS以及其他操作系统(比如OS/2、UNIX、WindowTM以及用于“苹果”计算机的其他系统)下控制CPU动态操作特征,需要将硬件和软件组合起来。应当注意,因为本实施例工作于任意系统中,并且由于执行过程随系统的不同而略有不同,所以,本发明的范围应当不局限于在MS/DOS或任意其他特定的操作系统下运行的计算机系统。
尽管控制量或变化量可以随系统的不同而不同,但按照本发明的较佳实施例,计算机系统元件放慢或停止使功耗减小,降低了运行温度或者控制了动态操作特征。所以,按照本发明,使时钟停止(当可以实现时,然而,某些CPU时钟不可能停止)而减小了功耗,而不是仅仅使时钟放慢。
一般说来,可以粗略地认为,CPU每秒的操作(或指令)次数与CPU时钟成正比:
指令/秒=指令/循环*循环/秒    (1)
为简单起见,假设重复执行同一指令,从而每秒的指令数是常量,那么可以有下述表述式:
       Fq=K1 *Clk                      (2)这里,Fq代表每秒的指令数,K1代表以每一循环具有的指令为单位的值,而C1K也代表每秒的循环次数。所以,粗略地说来,执行的速率随CPU时钟的频率而增加。
在任何给定值下,计算机使用的电力值还与CPU时钟的频率有关,所以也与CPU的执行速率有关。一般说来,下述表达式表达了这种关系:
       P=K2+(K3 *Clk)                  (3)这里,P是用瓦表示的功率,K2代表以瓦为单位的常数值,K3是表示瓦-秒/循环的常数,而Clk等于CPU时钟的循环/秒。所以,从等式(3)可以得到,CPU时钟频率增加时,在任意给定的时刻,CPU消耗的功率数量也增加。
可以将给定的时间间隔T划分成n个间隔,从而在每一个时间间隔内功率P是常数,而在总的时间间隔内CPU消耗的能量E可以表示为:
       E=P(1)ΔT1+P(2)ΔT2+…+P(n)ΔTN    (4)进一步假设CPU时钟Clk只有两种状态,即,“接通(ON)”或“关断(OFF)”。这里,“ON”状态代表CPU时钟状态处在其最大频率下,而“OFF”状态表示时钟状态处在CPU可以操作的最小频率下。注意,该最小时钟频率对于时钟可停止的CPU来说可以是“零”。对于CPU始终处在“ON”的情况,上述等式中的每一P(i)相等,并且总能量为:
       E(max)=P(ON)*(ΔT1+ΔT2+…+ΔTN)=P(ON)*T  (5)这里,P(ON)代表时钟处在“ON”状态时所消耗的功率,而P(OFF)代表时钟处在“OFF”时使用的功率。这代表不采取措施来控制CPU动态操作特征时计算机的最大功耗。如果CPU时钟在间隔1到间隔4的部分内为“OFF”,那么每一间隔可以包括两个功率电平。如果时钟为“ON”,所有时间间隔累加为量T(ON),而所有为“OFF”时间间隔累加为T(OFF),那么下述表述式成立:
       T=T(ON)+T(OFF)    (6)
现在,在该时间内CPU使用的能量可以写成下面的形式:
       E=[P(ON)*T(ON)+[P(OFF)*T(OFF)]    (7)
在这些条件下,CPU消耗的总能量可以通过增大时间间隔T(OFF)来减小。所以,通过控制时钟处在“OFF”状态的时间,本实施例减小了CPU使用的能量数量。在时间T内,通过将T(OFF)时间间隔划分成大量的间隔,本实施例清楚地表明,当每一间隔的宽度趋于零时,能耗接近其最大值。相反,当T(OFF)间隔的宽度增大时,能耗降低。
排列“OFF”间隔,使之与CPU通常为不工作的时间一致,使计算机系统运行,从而使用者不会觉察到性能的下降,而本实施例从E(max)状态减小了总能耗。为了使T(OFF)间隔与CPU不工作的时间一致,本实施例用一闭合循环路(例如图1所描述的闭合循环10)来确定CPU活动水平宽度T(OFF)间隔。继续描述图1,CPU活动水平是在步骤12确定的。如果该水平比紧接着的前一确定增大,那么询问框14将处理流程送到步骤16,在那里,本实施例降低T(OFF)间隔。步骤16处理流程至步骤12,确定CPU活动水平。另一方面,如果CPU活动水平比前一确定减小,则本发明就如图18所示,增加T(OFF)间隔,并且处理流程再次继续到步骤12,确定CPU活动水平。这样,闭合环路10经常调节T(OFF)间隔,使之与CPU活动水平一致。
在任一操作系统中,存在两个主要的逻辑点:(1)操作系统内的空闲(IDLE)环路,或者“空操作”环路,以及(2)通常用作应用软件所需业务的操作系统请示通道。通过使逻辑与这些逻辑点一致,本实施例可以估计应用软件进行或将进行的活动请求的类型。有了这种类型的信息,本实施例可以实现控制CPU动态操作特征的反馈和控制处理。例如,知道了活动请求的类型,可以进行节电,并开始确定片(slice)时间间隔。一个片时间间隔是在活动水平计算的时间内T(ON)对T(OFF)间隔的数。
本实施例有一个确定CPU活动水平的假设。本实施例假设,需要服务的软件程序通常需要其他的服务,并且服务请求之间的时间可以用来确定在计算机上运行、控制CPU动态操作特征(例如电源)的任意应用软件的活动水平,以及提供用于节电的时间片计数(slice counts)。
一旦本实施例在节电时间片期间,即,比如在T(OFF)期间,使CPU中断,那么CPU在引向中断软件之前存储该被中断的程序状态。因为节电软件是在该节电时间片期间运行的,所以本实施例使控制返回到节电环路,该环路简单地监视CPU时钟,以判定节电模式的退出条件的存在,从而从T(OFF)状态退到T(ON)状态。如结合附图1所讨论的那样,处理流程按照被监视的活动水平调整下一个节电状态的时间间隔。某些设备可以通过硬件逻辑自动从T(OFF)退出,从而在T(ON)间隔内为执行CPU指令自动强迫从节电环路退出。
图2a到2d描述的是本实施例主动功率监视功能20。运行中,CPU或者通过CPU只读存储器(ROM)存储的程序,或者从在随机存取存储器(RAM)中存储程序的外部装置,来安装主动功率监视功能。一旦CPU装入了主动功率监视功能20,那么主动功率监视功能20的处理流程就进入INIT(初始化)步骤22,执行系统中断初始化、用户结构设立和系统/应用专用初始化的步骤。用于IDLE或“空操作”功能的硬件或软件中断执行IDLE分支24,这在图2b中特别示出。进入IDLE或“空操作”循环(即计划的不动作)的CPU产生这种类型的中断。由于操作系统或I/O服务请求或通过一应用程序或内部操作系统功能的软件或硬件中断执行将在图2d中作更完整描述的活动(ACTIVITY)流程图的ACTIVITY分支。
例如,程序可以是磁盘I/O功能、读取、打印、装入或另一种服务的请求。无论选择的分支是什么,RETURN(返回)向量21最终使处理流程返回到CPU操作系统。只有当CPU通过程序将主动功率监视功能20装入ROM时,或者每次在加电时如果CPU装入来自外部装置的RAM的监视功能20,本较佳实施例才执行图2a作更详细描述的INIT分支22。在主动功率监视功能20的INIT分支22完全执行了监视功能20以后,视CPU动作的类型而定,IDLE分支24或ACTIVITY(活动)分支26使处理流程分支。无论何时操作系统进入节电模式,视CPU活动的类型而定,选择IDLE分支24或ACTIVITY分支26。即,用于计划不活动期间的节电时,选择IDLE分支24,而用于CPU活动期间的节电时,选择ACTIVITY分支26。
继续参看图2a,进一步看一看INIT分支22,在对所有的系统中断和变量进行初始化以后,程序在步骤30处继续,将POWER_LEVEL(功率电平)参数设定成与DEFAULT_LEVEL(缺省电平)相等。在用户已对POWER_LEVEL输入控制的操作系统中,程序在步骤32处检查是否已经选择了USER_LEVEL(用户电平)参数。如果USER_LEVEL参数小于零或者大于MAXIMUM_LEVEL(最大电平),那么系统就采用DEFAULT_LEVEL参数值。否则,INIT分支22继续到步骤34,将POWER_LEVEL参数值设定成与USER_LEVEL参数相等。
按照本发明的当前实施例,INIT分支22在步骤36处将变量IDLE_TICK(空闲标记)设定成零,并将变量ACTIVITY_TICK(活动标记)设定成零。在MS/DOS应用下,IDLE_TICK变量表示在“空操作”循环中出现的中断数。ACTIVITY_TICK变量代表活动中断引起的中断数。该中断又确定了CPU活动水平。Tick(标记)计数代表一个中断的Δ(delta)时间ΔTi。IDLE_TICK是一个从一个标记到另一标记的恒定Δ时间ΔTi,除非出现软件中断来重写该时间间隔。即,软件中断可以重新程序设定中断之间的Δ时间。
在将IDLE_TICK和ACTIVITY_TICK变量设定为零以后,INIT分支28继续到SETUP步骤38,此时,INIT分支22按照系统特定的细节,处理任一应用的特定的结构细调,并且SETUP步骤38使主动功率监示功能20初始化。接着,INIT分支22在步骤40处,用给硬件的指令进入中断I/O。这向硬件指出,它可以在下一个中断处进行控制。接着INIT分支22通过RETURN向量28,退至操作系统,或者任何原先调用主动功率监视20的功能。
图2b更完整地描述了主动功率监视功能20的IDLE分支24。根据CPU的计划不活动时间间隔,主动功率监视功能20首先判定活动中断A是否为当前忙,来检查是否允许进入IDLE分支24。如果如询问42所测试的那样,参数BUSY_A等于再进入标记BUSY_FLAG的值,那么这意味着CPU为忙,并且此时不能进入睡眠。所以,主动功率监视功能20立即进入RETURN I步骤44,并退出该程序。RETURN I步骤44将间接向量提供给先前的操作系统IDLE向量中断,以进行正常处理。CPU在进入主动功率监视功能20之前,存储该间接向量。换言之,RETURN I步骤44使中断返回到最后的链接向量。
如果询问框42判定BUSY_A中断标志不忙,则在步骤46处主动功率监视功能20检查BUSY_IDLE中断标志是否与BUSY_FLAG相等。如果是,这表示主动功率监视功能已经在IDLE分支24中,因而不应当有CPU中断。如果BUSY_I等于BUSY_FLAG,则IDLE分支24处理流程进入步骤44。
然而,如果BUSY_A再进入标志和BUSY_I再进入标志都未曾设定,那么IDLE分支24就在步骤48处设置BUSY_I,用于再进入保护,即,将BUSY_I设定成与BUSY_FLAG值相等。在步骤50处,使IDLE_TICK变量递增1。IDLE_TICK变量在T(OFF)间隔之前是T(ON)数。IDLE和中断,SETUP(建立)中断数以及CPU活动水平确定IDLE_TICK的值。IDLE_TICK变量递增1,使得事件顺利。这使得临界I/O动作能够控制顺利。
在步骤52处,主动功率监视功能20检查IDLE_TICK变量是否等于预定的常数值IDLE_MAXTICKS(最大标记)。IDLE_MAXTICKS是由INIT分支38的建立步骤38初始化并对给定的CPU保持为常数的多个常数中的一个常数。在当前实施例中,常数参数IDLE_MAXTICKS能够进行活动水平的自调节。如果变量IDLE_TICKS不等于常数IDLE_MAXTICKS,那么IDLE分支24在步骤54处清除BUSY_I标志,并通过使RETURN I间接IDLE分支24回到向量44而退出处理流程。然而,如果IDLE_TICK变量等于IDLE_MAXTICKS,那么在步骤56处,IDLE_TICKS变量等于IDLE_START_TICKS(空闲启动标记)常数(它可以为零,也可以不为零)。一般说来,如果可以使特定的CPU时钟停止,并且仍然能恰当的行使功能,那么IDLE_START_TICKS将等于零。否则,IDLE_START_TICKS取适合于给定CPU的某一预定值。该步骤通过指定主动功率监视功能20可以执行余下睡眠功能的频繁程度,来确定本实施例的自调节方面。通过将IDLE_START_TICKS设定成等于IDLE_MAXTICKS减1,本实施例实现一连续的T(OFF)间隔。在询问框58处,IDLE分支24检查POWER_LEVEL(功率电平)参数水平。如果POWER_LEVEL参数等于零,那么在POWER_LEVEL参数54处,IDLE分支24清除BUSY_I标志,并使RETURNI间接向量44返回到控制操作系统,从而它可以继续在进入主动功率监视功能20之前原先所做的事情。
然而,如果POWER_LEVEL参数值在询问框60处不等于零,那么IDLE分支24就确定中断屏蔽是否到位。系统/应用软件设置INTERRUPT_MASK(中断屏蔽)变量,并确定对主动功率监视功能20是否存在中断。如果询问框60判定中断是NOT_AVAILABLE(不存在),则IDLE分支24清除BUSY_I再进入标志,并返回到控制操作系统,使得CPU能够继续它在进入主动功率监视功能20之前所做的事情。操作系统以及应用软件可以通过将中断屏蔽设定成等于NOT_AVAILABLE值或标志,设定T(ON)间隔,以产生一连续的T(ON)状态。
当某一中断是AVAILABLE(存在)时,主动功率监视功能20进至在硬件状态建立的一个T(OFF)周期内完全执行的SAVE POWER(节电)子程序62。例如,在该较佳实施例中,最长的可能间隔可以是18毫秒,这在来自实时时钟的两个标记或中断之间是最长的时间。在SAVE POWER子程序62期间,CPU时钟下降到睡眠时钟的水平。
一旦临界的I/O操作迫使T(ON)间隔开始,那么IDLE分支24中断就趋向于对额外的临界I/O请求保持就绪。当CPU临界I/O变的忙时,就只有很少的T(OFF)间隔。相反,当临界I/O请求降低时,以及它们之间的时间间隔增大时,就只有更多的T(OFF)间隔。IDLE分支24根据CPU活动水平变慢时来自趋向于提供更多T(OFF)间隔的工作活动中断的反馈,提供一自调节系统。
图2c以及相关的文字更完整地描述了一旦主动功率监视功能20完成了SAVEPOWER子程序250,BUSY_I再进入标志就在步骤54处进行清除,并且控制通过RETURN I向量44回到原先请求主动功率监视功能20的那个操作系统。更详细地参见图2c,它示出了描述节电(SAVE POWER)子程序62的流程图。在步骤82主动功率监视功能20确定I/O硬件的高速时钟。节电(SAVE POWER)程序62的下一个步骤84将(SURRENT_CLOVK_RATE)当前时钟频率设定为等于相关的高速时钟并在具有多水平高速时钟的CPU中保存该数值。因此,如果某一CPU具有12MHz和6MHz的高速时钟,则主动功率监视功能20必须确定在主动功率监视功能20降低功率之前是哪一种高速时钟控制着CPU。这确保了CPU在唤醒时重新在合适的高速时钟下工作。在步骤84,(SAVE POWER)子程序将SAVE_CLOCK_RATE((SAVE_CLOCK_RATE))频率变量设定为等于步骤82确定的当前时钟频率。当只有一个高速时钟用于CPU时,不使用保存时钟频率84。主动功率监视功能20现在继续至睡眠时钟(SLEEP CLOCK)步骤86,该步骤向硬件选择器(示于图5)发送一个脉冲功能20以通过降低或停止时钟频率使CPU时钟处于睡眠状态。I/O端口硬件的睡眠时钟的振荡要比一般采用的CPU时钟低得多。
因此,可能会发生两个事件。即发生系统/应用中断或者实时时钟中断。如果发生系统/应用中断88,主动功率监视功能20进入中断程序90。(SAVE POWER)子程序62尽可能快地处理中断,在步骤92待命中断I/O,并返回以在询问框94确定是否有中断存在。由于已经有中断,所以步骤96采用(SAVE_CLOCK_RATE)数值来确定返回CPU至哪个高速时钟。(SAVE POWER)子程序62的流程图80终止于RETURN向量98。但是如果询问框94确定没有系统/应用中断,则SAVEPOWER子程序62持续等待到发生实时时钟中断发生为止。一旦发生这样的中断,SAVE POWER子程序62以存储的SAVE_CLOCK_RATE重新建立CPU。如果睡眠时钟频率不是停止的时钟频率,即睡眠时钟频率不为零,则控制以低速时钟传递并且SAVE POWER子程序62通过询问框94过程中SAVE POWER以及步骤88至92执行中断循环。另一方面,如果睡眠时钟频率为零时传递控制,则SAVE POWER子程序62执行中断循环,在使CPU时钟返回SAVE_CLOCK_RATE96之前,只执行一次循环,该循环包括询问框94和步骤88至92,随后处理流程继续至RETURN向量98。
现在考虑图2d,其中流程图100示出了ACTIVITY(活动)分支26的处理流程,其中应用/系统活动请求经操作系统触发服务请求中断。ACTIVITY(活动)分支26开始于重进入保护。主动功率监视功能20在步骤102确定BUSY变量是否设定为BUSY_FLAG值。如果已设定,则主动功率监视功能20系统已经处于IDLE分支24并且无法被中断。如果BUSY等于BUSY_FLAG值,则主动功率监视功能20通过RETURN I向量44而退出,该向量为一般处理用至老的活动向量中断的间接向量。RETURNI向量44使CPU操作在操作系统完成需要的服务之后经中断向量返回正常位置。
如果BUSY标志变量不等于BUSY_FLAG值,这意味着主动功率监视功能20不再访问IDLE分支22。如果BUSY标志等于BUSY_FLAG值,则主动功率监视在询问框104的功能20。如果这样,ACTIVITY分支26在该点向计算机系统返回控制。这意味着ACTIVITY分支26已经使用并且不能中断。如果BUSY标志没有设定,即BUSY不等于BUSY_FLAG值,则为了防止执行时发生中断,主动功率监视功能20在步骤106将BUSY参数设定为等于BUSY_FLAG值。在询问框108,ACTIVITY分支26确定POWER_LEVEL参数值。如果POWER_LEVEL参数值等于零,则在清除BUSY重入标志的步骤110之后主动功率监视功能20分支退出ACTIVITY26。但是如果POWER_LEVEL参数不等于零,则ACTIVITY分支接着确定I/O硬件CUEEENT_CLOCK_RATE参数的值。如图2的SAVE POWER子程序的步骤84所示,如果给定CPU有多水平高速时钟,则图2d的ACTIVITY分支26采用CUEEENT_CLOCK_RATE参数值。否则,CUEEENT_CLOCK_RATE参数值总是等于CPU高速时钟。在步骤112确定CUEEENT_CLOCK_RATE参数值之后,步骤114将IDLE_TICK参数值设定为等于常数START_TICKS。为先前确定的CUEEENT_CLOCK_RATE建立START_TICKS。有效的当前高速时钟建立T(OFF)间隔。
ACTIVITY分支26的下一步骤是在询问框116中确定请求是否完成。请求是一种由运行在计算机上的应用软件输入的需要某一类型服务的输入。在询问框116中,ACTIVITY分支26确定请求是否为CRITICAL I/O。CRITICAL I/O继续强迫T(ON)延长直到T(ON)大于T(OFF)。如果请求为CRITICAL I/O,则在首先清除步骤110的BUSY-A重入标志之后主动功率监视功能20退出ACTIVITY分支26。另一方面,如果请求不是CRITICALI/O,则ACTIVITY分支26在步骤118使ACTIVITY-TICK参数增,并且处理流程继续到询问框120,该框确定ACTIVITY-TICK参数值是否等于ACTIVITY-MAXTICKS常数值。询问框120的测试使得可以从CRITICAL I/O平滑过渡并且在下一ACTIVITY-TICK T(ON)间隔内使系统对另一个CRITICAL I/O准备就绪。假定ACTIVITY-TICK参数不等于ACTIVITY-MAXTICKS常数,则ACTIVITY分支26处理流程步骤110清除BUSY-A重入标志后行至RETURNI向量44。另一方面,如果ACTIVITY-TICK等于常数值ACTIVITY-MAXTICK,则在步骤122 ACTIVITY分支26将ACTIVITY-TICKcd数设定为常数值LEVEL-MAXTICKS。ACTIVITY分支26建立由询问框108确定的某一POWER LEVER的LEVEL-MAXTICKS。
在询问框124,ACTIVITY分支26确定是否存在中断屏蔽。系统应用软件设置一中断屏蔽。将中断屏蔽设置NOT_AVAILABLE(不存在)标志值生成了连续的T(ON)状态,这意味着此时不存在中断。在此情形下,ACTIVITY分支26的处理流程进入到步骤110以清除BUSY-A重入标志并继续到RETURN I向量44。但是,如果中断屏蔽为AVAILABLE(存在),则ACTIVITY分支26在询问框26确定由询问框116识别的请求是否用于SLOW I/O_INTERRUPT(慢I/O中断)。SLOW I/O_INTERRUPT请求可有延迟直到I/O设备“就绪”为止。在“使之就绪”操作期间,可以开始连续的T(OFF)并继续节电。因此,如果请求不是SLOW I/O_INTERRUPT,ACTIVITY分支26处理流程就进至步骤110以清除BUSY-A重入标志并继续到RETURNI向量44。但是,如果请求为SLOWI/O_INTERRUPT,并且在I/O设备“就绪”之前还存在时间,则ACTIVITY分支26在询问框128确定I/O请求是否完成。因此询问框128基本上确定相关的I/O设备是否就绪。如果I/O设备没有就绪,则主动功率监视功能20强迫T(OFF)延长。这迫使CPU等待或睡眠,直到SLOWI/O设备就绪。此时,有时间节电。因此,ACTIVITY分支26进入节电SAVE POWER子程序62,图2e和所附的文字对此作了详细的描述。如果询问框128确定I/O请求已经COMPLETE,则由处理流程进至步骤110清除BUSY-A重入标志并继续至RETURNI向量44而使控制返回到操作系统。
本发明的该实施例不仅提供了主动功率监视,而且还提供了管理其它CPU动态操作特性的方法及其系统。这些其它的动态操作特性例如可以是不需要的电磁波辐射或者CPU的失效,按照本发明继续在经过反复调整后的预先确定的温度范围内运行。特别,如图3所示,本实施例提供了一种主动热管理反复和系统,它包括温度控制用的实时反馈循环,它对于用户来说是透明的并且按照与图2c中节电SAVE POWER子程序62相同的方式运行。
图3示出了在步骤132开始的THERMAL MANAGEMENT(热管理)子程序130。为了实施THERMAL MANAGEMENT子程序130,主动功率监视功能20可以修改为更一般的主动监视功能,它不仅能够由相关的CPU和计算机系统监视功率消耗,而且可以监视其它CPU动态操作特性。因此,实质上与主动功率监视功能20可以经IDLE分支24和ACTIVITY分支26调用节电SAVE POWER子程序62一样,当THERMAL MANAGEMENT子程序130假定作CPU温度控制操作时,更为一般的主动监视功能可以调用THERMAL MANAGEMENT子程序130。但是关键的差异是与在活动水平低的时刻调用SAVE POWER子程序62相反,本实施例在温度条件接近或者可能接近CPU热极限时调用THERMALMANAGEMENT子程序130。
特别是本实施例的主动监视功能可以在ACTIVITY分支26内当BUSY-A参数等于BUSY标志常数值时调用THERMAL MANAGEMENT子程序30。由此向前,处理流程按照THERMAL MANAGEMENT流程图130描述的进行。
更详细地参见图3,在步骤132示出了THERMAL MANAGEMENT子程序130的初始化。THERMAL MANAGEMENT子程序130在步骤134确定CURRENT_CLOCK_RATE参数的值。下一步骤136CURRENT_CLOCK_RATE参数设定等于相关的高速时钟并且在CPU具有多水平高速时钟的情况下保存该数值。因此,如果某一CPU具有12MHz和6MHz的高速时钟,则主动监视功能必须确定在主动监视功能响应CPU过热或者温度变化条件之前控制CPU的是哪一种高速时钟。这确保了在唤醒时CPU以合适的高速重新建立操作。在步骤136,THERMAL MANAGEMENT子程序130设定由步骤134确定的SAVE_CLOCK_RATE(保持时钟频率)参数值。本实施例比较好的做法是当CPU只有一种高速时钟时不用CURRENT_CLOCK_RATE。
THERMAL MANAGEMENT子程序130继续至步骤138,在那里作了CPU要处理的指令数计数。本实施例包括相关的计算机系统的ROM存储的查寻表。查寻表区分需要I/O的指令与包括CPU操作而元需I/O的指令。
跟随在COUNT_INSTRUCTION_LIST(计数指令列表)步骤138之后,询问框140确定THERMAL_INTERRUPT(热中断)询问框140的参数值是否等于常数值THERMAL_SETPOINT(热设定点)。这指示需要热中断。热中断可以是停止或改变CPU操作以响应不需要的温度条件的中断。如果THERMAL_INTERRUPT参数数值与THERMAL_SETPOINT值不相等,则THERMAL MANAGEMENT子程序130处理流程继续到COMPUTE ROUND(受计算量限制)子程序142。另一方面,如果THERMAL_INTERRUPT等于THERMAL_SETPOINT,则处理流程进至步骤144,在该点CPU时钟移至较低SLEEP CLOCK(睡眠时钟)频率。从SLEEP CLOCL频率步骤144出发,处理流程进至询问框146以测试处理流程是否退出THERMAL MANAGEMENT子程序132。如果处理流程没有退出THERMAL MANAGEMENT子程序132,则处理流程返回至询问框140以继续测试热中断条件是否存在。
如果CPU要退出THERMAL MANAGEMENT子程序132,则询问框146使处理流程导向RETURN向量148。这使得处理流程返回先前描述过的主动监视功能。这种情况的发生有多种原因,例如主动监视功能进至图2b的IDLE分支22。只要存在热中断条件,THERMAL MANAGEMENT子程序130就以较低的SLEEP CLOCK频率运行。
当THERMAL MANAGEMENT子程序132使处理流程导向COMPUTEROUND子程序142时,处理流程的情况如同图4描述的COMPUTE ROUND子程序流程图150描述的那样。开始于COMPUTE ROUND子程序步骤142,处理流程进至询问框152,在那里测试CPU是否处于受计算量限制状态。如果CPU不处于受计算量限制状态,则处理流程进至RETURN向量154。RETURN向量154使THERMAL MANAGEMENT子程序130处理流程回到THERMAL_INTERRUPT询问框140(见图3)。
如果CPU处于受计算量限制状态,则COMPUTE ROUND子程序142的处理流程进至询问框156。
本发明提供的技术优势是能够预览或预示CPU的操作特性。通过对指令数计数并确定,本实施例确定CPU操作是否将处于受计算量限制模式,其中很少或者没有输入/输出,因此对CPU不减慢和无输入/输出功能。确定CPU是否处于受计数量限制状态源于对CPU要执行的指令的计数,如同在COUNT_INSTRUCTION_LIST步骤138中所作的那样。本实施例包括将CPU要执行的指令与存储在计算机系统ROM内的查寻表中的元素进行比较的比较器。查寻表提供了一种指令类型特性作为包括I/O功能和没有I/O功能而只包括CPU的处理或计算操作的指令。本实施例提供用于计算指令数的预先确定的阈值,这些指令排成序列,没有包括I/O功能的间断的I/O指令。如果不含I/O功能的指令数超过预先确定的阈值数,则本实施例考虑CPU处于受计算量限制状态。
在COMPUTE BOUND子程序142确定CPU处于受计算量限制的状态下时,处理流程继续至询问框156,它测试CPU是否将在受计算量限制状态期间建立热中断条件。这防止了CPU到达热中断,或者如果需要,将热中断调整至新的热中断水平。因此,如果在询问框156,COMPUTE ROUND子程序142确定CPU在受计算量限制状态期间将到达热中断,则处理流程进至询问框158。另一方面,如果在受计算量限制状态期间没有发生热中断,则处理流程进至RETURN向量154以在THERMAL MANAGEMENT子程序130中继续。
本实施例提供调整常数值THERMAL_SETPOINT的能力,例如,在计算量限制状态期间CPU需要热中断设定点时,受计算量限制状态的时间较短,不足以对CPU产生不利的影响。换句话说,在一般条件下,热中断条件可以设定为如果CPU到达该温度时,安全系数确保不会对CPU有热损害。例如,当知道CPU温度达到常数值TUERMAL_SETPOINT的原因时可以有较大的可调的安全系数。这种情况使得CPU温度以已知和可预测的方式升高。
根据受计算量限制状态期间CPU执行的指令数和类型,COMPUTE ROUND子程序142可以确定当CPU到达或者超过CPU温度设定点值THERMAL_SETPOINT时,这样做只要短暂的间隔。这种由COMPUTE ROUND子程序142确定的短暂间隔不会损坏CPU或对CPU构成威胁。为了容纳这种情况,询问框158测试COMPUTE ROUND子程序145是否应该调整已有的THERMAL_SETPOINT值。如果已有的THERMAL_SETPOINT常数值需要调整,则处理流程进至步骤160以调整THERMAL SETPOINT值。从步骤160,处理流程继续至RETURN向量154。另一方面,如果THERMAL_SETPOINT的数值仍然保留为已有的数值,则处理流程进至询问框162以测试THERMAL_INTERRUPT参数值是否要设定为THERMAL_SETPOINT常数值。
如果THERMAL_INTERRUPT常数值要设定为THERMAL_SETPOINT常数值,则处理流程进至步骤164,在该点COMPUTE ROUND子程序142将THERMAL_INTERRUPT参数值设定为THERMAL_SETPOINT常数值。处理流程随后继续至RETURN向量154。另一方面,如果THERMAL_INTERRUPT变量值将不设定为THERMAL_SETPOINT值,则处理流程简单地继续至RETURN向量154。由该点向前,处理流程进行至RETURN向量148并返回THERMAL MANAGEMENT子程序142。
自调谐是连续反馈环路控制系统固有的特性。本发明的软件可以检测CPU活动何时较低,因此何时可使本发明的节电方面起作用。另一方面,本实施例确定CPU活动何时较高因而热管理起作用。一旦节电监视起作用,在该间隔内立即返回全速CPU时钟操作从而不使计算机性能降低。同样,一旦离开了热设定点条件,并且不再需要热管理时,则在CPU内立即返回全速CPU时钟使热管理的影响最小。为了达到该立即返回全速CPU时钟操作,本发明的较佳实施例采用有些相关的硬件。
现在看图5,它示出了本发明采用的用于启动功率节省和热管理的有关硬件的简化图。当启动主动功率监视功能20确定CPU准备睡眠时,它向I/O端口(未画出)写入从而在SLEEP线上引起一个脉冲。SLEEP线上该脉冲的上升沿使得触发器200将Q端取高值而使Q-端取低值。这引起了“与/或”逻辑(它包括“与”门202和204和“或”门206以选择从SLEEP CLOCK(睡眠时钟)振荡器208SLEEP CLOCK线并为CPU CLOCK时钟使用的脉冲。SLEEP CLOCK钟振荡器208的时钟慢于一般CPU活动期间的CPU时钟。从触发器200的Q的高输入利用“与”门202与来自SLEEP CLOCK振荡器208的脉冲进行“与”运算并用“或”门206与触发器200的Q-的低的结果进行“或”运算,然后进一步用“与”门204与HIGH SPEED CLOCK(高速时钟)振荡器210沿HIGH SPEED CLOCK线产生的脉冲进行“与”运算从而产生CPU CLOCK时钟。当I/O端口指定SLEEPCLOCK时,CPU CLOCK等于SLEEP CLOCK振荡器208的数值。另一方面,如果发生中断,则中断值清除触发器200,中断迫使包含“与”门202和204以及“或”门206的“与/或”选择器选择HIGH SPEED CLOCK值。“与/或”选择器将使CPU CLOCK返回至来自HIGH SPEED CLOCK振荡器210的数值。因此,在对CPU的节电操作期间,系统内任何中断的检测都使CPU操作在指引和处理中断之前恢复至全速时钟频率。
应该指出的是给定系统的每个CPU外部所需的有关硬件可以根据所用的操作系统的不同(如是否可使CPU停止等)而不同。毫无疑问,本发明的范围并不局限于在众多便携式计算机系统中主动节电或管理热状态的情况。例如,在图6和7中示出了两个实际的例子。
今天的许多VSLI设计使得CPU的速度可以切换。从空时钟或慢时钟切换至快时钟逻辑与允许用户通过键盘命令改变速度的方式相同。与这种切换逻辑共同工作的主动监视功能的附加逻辑使得在检测到中断后立即返回到快速时钟。这种简单的逻辑对于支持中断CPU的所需硬件来说是关键的并且从而能以全速处理中断。
在MS-DOS下控制CPU动态操作特性(包括功耗和温度)的方法采用MS-DOSIDLE循环陷阱来访问“空操作”的循环。IDLE循环提供对应用软件和处于空闲或者低活性状态下操作系统的特殊访问,需要仔细的检查来确定系统内任何给定点的活动水平。从中断21H服务请求到确定活动水平都采用反馈循环。活动水平的预测由中断21H请求确定,由此本发明设定使CPU“睡眠”(即,使CPU速度放慢或停止的时间片。另外一个特征是使用户可以根据中断21H的活动水平修改时间片。
现参看图6,该图示出了诸如Intel 80386等系统所用的实际睡眠硬件设备。顺便指出,不能使Intel 80386 CPU的时钟停止。地址启动总线220和地址总线222将CPU的输入提供给多路分解器224。多路分解器224的输出沿SLEEPCS发出,作为“或”门226和228的输入。“或”门226和228的其余输入分别是I/O写控制线和I/O读控制线。除了“或非”门230的输出以外,还把这些门电路的输出施加到D触发器232上,以便对端口(port)解码。“INTR”是来自I/O端口(外围设备)输入给“或非”门230的中断输入,它使逻辑硬件切换回高速时钟。然后,将触发器232的输出以及“或”门226的输出馈送给三态缓冲器234,使其读回端口上的信息。由I/O读/写端口(外围设备)利用所有上述硬件来选择节电“睡眠”操作。“SLOW-”输出等价于图2中的“睡眠”,并且它是触发器236的一个输入,后文将对其进行讨论。
D触发器240和242将睡眠时钟振荡器238的输出分频成两个较慢的时钟。在图6所示的特定设备中,是将16MHZ睡眠时钟振荡器238分频成4MHZ时钟和8MHZ时钟。跨接器J1选择哪一个时钟作为“睡眠时钟”。
在该特定的设备中,高速时钟振荡器244是32MHZ的振荡器,尽管这一特定的速度不是本发明所要求的。32MHZ振荡器与一电阻器串联(对于图示的设备,电阻值为33欧姆),而该电阻器又与两个互相并联的电容器(电容为10皮法)串接。这种振荡的结果受到D触发器246和248时钟的限制。
D触发器236、246和248是同步触发器。尽管D触发器236和246未在图2a至图2d描述主动电源监视功能20的简化睡眠硬件中示出,但是这些触发器能够保证时钟切换仅在时钟的边缘发生。,如图6所示,与图5中的触发器200一样,触发器248的输出根据CPU将作睡眠(“FASTEN-”)还是唤醒(“SLOWEN-”),或者启动“或”门250,或者启动“或”门252。
“或”门250、252和“与”门254的功能等价于图5的“与/或”选择器。它们负责选择“Slowclk”(慢时钟,也称作睡眠时钟)或高速时钟(输入线上表示为32MHZ)。在该设备中,慢时钟根据跨接器J1的状态为4MHZ或8MHZ,而高速时钟为32MHZ。“与”门254的输出在此用ATUCLK标注,它确定了CPU时钟的频率,并且等价于图5的CPU时钟。
现参见图7,该图示出了诸如Intel 80386等系统所用的另一实际睡眠硬件设备。顺便指出,不能使Intel 80386 CPU的时钟停止。用Western Digital公司的FE3600 VLSI进行速度切换,并借助一特殊的外部PAL 256来控制在任何中断时唤醒CPU的中断选通。利用本发明的软件节电方式,可以对中断接受进行监视。这在中断后将启动下一个P(i)ΔTi
任何对CPU的中断请求都将使系统返回正常操作状态。对CPU的中断请求INTRQ使PAL把RESCPU线上的唤醒(WAKE_UP)信号发送给FE3001,FE3001再启动CPU和DMA时钟,使系统返回到其正常状态。这等价于图5中的“INTERRUPT-”(中断)。使中断请求同步,以避免混淆状态机器,从而只在周期有效时才检测中断信号INTDET。RESCPU的上升沿唤醒FE 3001,然后FE 3001再将整个系统从睡眠模式中释放出来。
用于386SX的设备,其不同之处仅在于实现本实施例CPU动态操作特征的外部硬件和软件循环体。软件循环体将在引向中断前根据中断设定外部硬件,以便切换至高速时钟。一旦返回至节电软件,主动监测功能便监测高速时钟周期,并为全时钟操作将硬件复位。
用于OS/2的设备使用“空操作”循环体,该循环体被编程为在低优先级背景操作下运行的穿线(THREAD)程序。一旦启动THREAD,则将启动CPU的睡眠操作或慢速时钟操作,直至发生中断致使CPU返回至原先的时钟频率。
尽管在本发明的较佳实施例中利用中断来唤醒CPU,但是应该认识到,系统内或加至系统的任何周期性活动也可以用于相同的功能。
本发明中的节电方面和热管理(thermal management)方面之间的不同在于,在部分的热管理方面需要对CPU的温度进行检测。这可以用一个热敏电阻或者其他直接检测的仪器来实现,检测仪器将温度读数提供给热管理(THERMALMANAGEMENT)子程序132。热敏电阻或其他温度检测器件是本领域中众所周知的。另外,根据有关该特定应用中CPU的动态操作特征,可用其他直接读出器件或检测器件获得被检测的操作特性。
综上所述,本发明提供了一种用于控制被检测的CPU动态操作特征的方法,并且包括至少检测一个CPU动态操作特征的步骤。本发明对检测至少一个动态操作特征时CPU的时钟频率进行检测。该方法以及设备根据至少一个CPU动态操作特征确定,存在一个设定点中断条件,该特征相对于与至少一个CPU动态操作特征相关的一个预定的设定点建立一个预定的关系。在存在中断状态的情况下,本发明包括相对于被检测的时钟频率控制时钟频率的步骤。另一方面,在不存在设定点中断条件的情况下,本发明包括重复上述确定和控制步骤的步骤和电路。
本实施例另一个有吸引力的特征是不仅能够根据诸如功耗和温度等被检测的CPU动态操作特征控制单个CPU,而且能够控制支持某一给定计算机系统的多个CPU。例如,在一个双CPU计算机系统中,本发明可以协调各项控制被检测的CPU动态操作特征的任务,以便使计算机的系统性能总体上保持所需的水平。例如,与加至两个CPU上的受计算量限制(COMPUTE BOUND)子程序130所确定的那样,一个CPU可处于受计算量限制的模式下。双CPU的计算机的另一个CPU可以不处于受计算量限制的模式下,而代之以执行指令,指令中有许多都包括I/O功能。由于认识到受计算量限制的CPU的升温系数将在现有的时钟频率下使CPU的温度升高,所以本发明可以为其放慢受计算量限制的CPU的时钟,以免达到某一热设定点。根据是否要求计算机系统性能恒定,本发明可以提高另一个CPU的时钟频率,以便保持平均或总的时钟频率不变,从而使计算机系统获得一个均匀的性能水平。
为了说明本发明的多CPU实施例的一个方面,图8示出了多CPU情况的流程图280,该流程图的开始是多CPU的启动步骤282。多CPU启动步骤282可以首先在询问框284中测试是否需要控制一个以上的CPU。如果将控制一个以上的CPU,那么流程行至询问框286。否则,流程行至返回向量(RETURN)288,使CPU返回到执行多CPU MULTIPLE CPU子程序280之前所处的操作中。
在询问框286处,MULTIPLE CPU子程序280测试是否将对MULTIPLECPU进行协调管理。如果不进行协调管理,则流程行至RETURM向量280。否则,流程行至步骤290,步骤290起一向量的作用,用于指向多个CPU中的每一个的控制。对于要经历对被检测的CPU动态操作特征进行控制的每个CPU,流程行至主动监视(ACTIVE MONITOR)子程序292。实质上,ACTIVEMONITOR子程序292可等价于主动功率监视功能20、主动监视功能例如用于THERMAL MANAGEMENT子程序132、协调节电和热管理的监视功能,或者响应于一个或多个被检测CPU动态操作特征对CPU进行控制的另一种监视功能或子程序。
当对每个CPU继续MULTIPLE CPU子程序280的流程时,会在询问框294处对至少一个被协调的CPU进行是否存在一个设定点中断条件的测试。如果不存在这种与设定点有关的中断状态,那么流程返回询问框294,继续对是否存在有关设定点的中断状态进行测试。当存在这样的中断状态时,流程行至询问框296,测试是否需要MULTIPLE CPU子程序280对未受影响的CPU的时钟频率进行控制或调节。如果由询问框296得知,将不对未受影响的CPU进行调节,那么流程行至RETURN向量288。否则,流程继续行至步骤298,在步骤298处,将调节未受影响的CPU的时钟频率,以便保持总的计算机系统的时钟频率不变,或者获得所需的总的计算机系统的时钟频率。
尽管已经描述了本发明较佳实施例的若干设备,但本领域的熟练技术人员将发现各种变化和其他实施例。因此,本发明仅受所附权利要求的限制。

Claims (31)

1.一种用于控制被检测CPU动态操作特征的方法,其特征在于,包括以下步骤:
(a)对计算机中的中央处理器(CPU)至少检测一个动态操作特征,所述CPU以第一时钟频率操作;
(b)根据所述至少一个动态操作特征确定存在一个设定点中断条件,该动态操作特征相对于一个预定设定点建立了一个预定关系,而该设定点与所述至少一个动态操作特征相关;
(c)在存在所述设定点中断条件的情况下,相对于所述第一时钟频率控制所述时钟频率;
(d)在不存在所述设定点中断条件的情况下,重复步骤(b)和(c)。
2.如权利要求1所述的方法,其特征在于,用于控制被检测CPU动态操作特征的所述方法包括一种用于管理CPU动态热学特征的方法,并且用于检测所述至少一个动态操作特征的所述步骤包括检测所述CPU工作温度的步骤,并且所述确定步骤包括确定存在中断条件的步骤,其中,所述工作温度相对于一预定温度设定点建立了一预定关系。
3.如权利要求1所述的方法,其特征在于,用于检测所述至少一个动态操作特征的所述步骤还包括检测所述CPU工作温度的步骤,并且所述确定步骤包括用于确定所述工作温度在所述CPU处于受计算量限制状态期间达到一预定温度设定点的步骤。
4.如权利要求1所述的方法,其特征在于,还包括用于确定所述CPU是否处于受计算量限制状态,并进一步确定在所述受计算量限制状态期间是否存在所述中断条件的步骤。
5.如权利要求1所述的方法,其特征在于,还包括以下步骤:(a)确定所述CPU是否处于受计算量限制的状态,(b)确定所述至少一个动态操作特征是否在所述受计算量限制状态期间将存在所述中断条件,并且(c)在所述受计算量限制状态期间将存在所述中断条件的情况下,修改所述中断条件。
6.如权利要求1所述的方法,其特征在于,还包括以下步骤:确定所述CPU是否能节电,并且如果所述CPU能节电,则根据所述中断条件的存在以及所述节电产生的控制信号,相对于所述被保存时钟频率控制所述时钟频率。
7.如权利要求1所述的方法,其特征在于,还包括以下步骤:确定所述CPU是否处于受计算量限制状态,并且通过确定所述CPU在所述受计算量限制状态期间将要执行的受计算量限制指令的数目,来确定所述受计算量限制状态的持续时间。
8.如权利要求1所述的方法,其特征在于,还包括以下步骤:确定所述CPU是否处于受计算量限制状态,并且通过确定所述CPU在所述受计算量限制状态期间将要执行的受计算量限制指令的数目,来确定所述受计算量限制状态的持续时间,而且在所述受计算量限制状态期间将存在所述中断条件的情况下,修改所述中断条件。
9.如权利要求1所述的方法,其特征在于,还包括以下步骤:确定所述CPU是否处于受计算量限制状态,并且确定所述受计算量限制状态的持续时间,还相对于所述被保存时钟频率修改所述时钟频率,以在所述受计算量限制状态期间避免存在所述中断条件。
10.如权利要求1所述的方法,其特征在于,用于检测所述至少一个CPU动态操作特征的所述步骤包括用一热敏电阻器检测器件检测所述CPU的工作温度。
11.如权利要求1所述的方法,其特征在于,还包括将所述预定关系和所述预定设定点存储在所述计算机一存储单元中的步骤。
12.如权利要求1所述的方法,其特征在于,还包括将所述预定关系和所述预定设定点存储在所述计算机一存储单元中的步骤,所述存储单元包含一个寄存器。
13.如权利要求1所述的方法,其特征在于,还包括将所述预定关系和所述预定设定点存储在所述计算机一存储单元中的步骤,所述存储单元包含一个不同于所述CPU的电路。
14.如权利要求1所述的方法,其特征在于,还包括一种有关在所述CPU中协调实时节电并控制被检测动态热学特征的的方法,所述实时节电方法与控制所述被检测CPU动态热学特征的所述方法相联系地操作,并且包括以下步骤:
(e)确定所述CPU是否能节电;
(f)如果所述CPU能节电,则为所述CPU确定一个当前时钟频率;
(g)命令一硬件选择器降低或停止提供给CPU的当前时钟频率;
(h)确定是否已经发生了节电中断;
(i)如果还未发生所述节电中断,则重复此步骤(i),此时所述CPU保持在所述节电模式下,直至所述节电中断发生;并且
(j)如果发生了所述节电中断,则命令所述硬件选择器对所述CPU恢复所述已确定的当前时钟频率。
15.如权利要求14所述的有关协调实时节电并控制被检测动态热学特征的的方法,其特征在于,命令硬件选择器降低或停止提供给CPU的当前时钟频率的所述步骤(g)还包括以下步骤:
通过一条与所述硬件选择器相连的通信线,用一节电CPU命令向所述硬件选择器通以脉冲;
根据所述节电CPU命令,通过所述硬件选择器选择节电时钟;并且
将来自所述节电时钟的脉冲传送给所述CPU,以便使所述CPU处于节电模式。
16.如权利要求14所述的有关协调实时节电并控制被检测CPU动态热学特征的的方法,其特征在于,确定计算机中中央处理器(CPU)是否能节电的所述步骤(e)还包括以下步骤:
检查所述CPU是否已处于所述节电模式下;
如果所述CPU还未处于所述节电模式下,则确定在所述CPU处于所述节电模式之前是否存在可唤醒所述CPU的节电中断;并且
如果存在节电中断,则防止所述CPU进入所述节电模式。
17.如权利要求1所述的有关实时节电的方法,其特征在于,确定计算机中中央处理器(CPU)是否能节电的所述步骤(e)还包括以下步骤:
检查所述CPU是否已接收到请求;
如果所述CPU已接收到请求,则确定所述请求是否为临界的输入/输出;
如果所述请求是临界的输入/输出,则防止所述CPU进入所述节电模式;
如果所述请求不是临界的输入/输出,则确定在所述CPU进入所述节电模式之前是否存在可唤醒所述CPU的节电中断;
防止所述CPU进入所述节电模式;
确定所述请求是否来自一个具有延迟直至I/O设备就绪的输入端/输出端;并且
如果所述请求不是来自一个具有延迟的输入端/输出端,则防止所述CPU进入所述节电模式。
18.一种用于控制多个CPU被检测动态操作特征的方法,其特征在于,包括以下步骤:
(a)对计算系统中多个中央处理器(CPU)的至少一个动态操作特征进行检测,所述多个CPU以并行工作模式工作;
(b)检测所述多个CPU每一个的第一时钟频率;
(c)为所述多个CPU的每一个确定存在至少一个设定点中断条件,这时所述至少一个被检测动态操作特征中的一个或多个相对于一个预定设定点建立了一个预定关系,该设定点与所述至少一个动态操作特征中相应的一个特征相关联;
(d)在存在至少一个中断条件的情况下,相应于所述至少一个设定点中断条件,对所述多个CPU中的一个CPU,相对于所述第一时钟频率至少控制所述时钟频率;
(e)在任何所述多个CPU都不存在中断条件的情况下,重复步骤(b)和(c)。
19.如权利要求18所述的方法,其特征在于,还包括以下步骤:至少控制所述多个CPU中的一个CPU,该CPU不是对应于所述中断条件的所述CPU,从而使所述计算系统在所述多个CPU中保持一个大致不变的平均时钟频率。
20.一种用于控制被检测CPU动态操作特征的设备,其特征在于,所述设备包括:
一CPU活动检测器;
一CPU时钟;
至少一个振荡器,用于至少在第一速度下提供第一脉冲,在第二速度下提供第二脉冲;
一硬件选择器,用于有选择地在所述第一脉冲和所述第二脉冲之间进行控制和选择,所述硬件选择器还把对所述第一脉冲和第二脉冲的所述选择提供给所述CPU时钟,所述硬件选择器可以响应于某一设定点中断条件而运作,所述设定点中断条件的存在依赖于至少一个被检测CPU动态操作特征,该特征相对于一个预定设定点建立了一个预定关系,而该设定点与所述被检测CPU动态操作特征相关联;以及
一CPU睡眠管理器,它适于从所述CPU活动检测器接收被检测的CPU的活动,并适于为所述硬件选择器产生一个脉冲,从而指定所述硬件选择器应该选择哪个脉冲。
21.一种用于控制被检测CPU动态操作特征的方法,其特征在于,包括以下步骤:
(a)检测电路,用于对计算机中的中央处理器至少检测一个动态操作特征,所述CPU以第一时钟频率工作;
(b)设定点指令,它们在所述CPU上运行,用于根据所述至少一个动态操作特征确定存在一个设定点中断条件,该特征相对于一个预定设定点建立了一个预定关系,该设定点与所述至少一个动态操作特征相关联;
(c)控制指令,用于在存在所述设定点中断条件的情况下,相对于所述第一时钟频率控制所述时钟频率;
(d)重复指令,用于在不存在所述设定点中断条件的情况下,重复步骤(b)和(c)。
22.如权利要求21所述的设备,其特征在于,还包括用于管理CPU动态热学特征的管理指令,并且所述温度检测电路还包括用于检测所述至少一个动态操作特征的动态温度检测电路,包括检测所述CPU工作温度的步骤,而且所述设定点指令还包括用于确定存在中断条件的指令,这时所述工作温度相对于一预定温度设定点建立了一预定关系。
23.如权利要求21所述的设备,其特征在于,所述检测电路还包括用于检测所述CPU工作温度的电路,并且所述设定点指令还包括用于确定所述工作温度在所述CPU处于受计算量限制状态期间达到一预定温度设定点的指令。
24.如权利要求21所述的设备,其特征在于,还包括受计算量限制确定指令,用于确定所述CPU是否处于受计算量限制状态,并确定在所述受计算量限制期间是否将存在所述中断条件。
25.如权利要求21所述的设备,其特征在于,还包括用于确定所述CPU是否处于受计算量限制状态的受计算量限制确定指令,其中所述设定点指令还包括用于确定在所述受计算量限制状态期间所述至少一个动态操作特性是否将存在所述中断条件的指令,并且还包括在所述受计算量限制状态期间将存在所述中断条件的情况下用于修改所述中断条件的修改指令。
26.如权利要求21所述的设备,其特征在于,还包括节电指令,用于确定所述CPU是否能节电,并且如果所述CPU能节电,则根据所述中断条件的存在以及所述节电所产生的控制信号,相对于所述被保存时钟频率控制所述时钟频率。
27.如权利要求21所述的设备,其特征在于,还包括受计算量限制确定指令,用于确定所述CPU是否处于受计算量限制状态,并且通过确定所述CPU在所述受计算量限制状态期间将要执行的受计算量限制指令的数目,来确定所述受计算量限制状态的持续时间。
28.如权利要求21所述的设备,其特征在于,还包括受计算量限制确定指令,用于确定所述CPU是否处于受计算量限制状态,并且通过确定所述CPU在所述受计算量限制状态期间将要执行的受计算量限制指令的数目,来确定所述受计算量限制状态的持续时间,并且还在所述受计算量限制状态期间将存在所述中断条件的情况下修改所述中断条件。
29.如权利要求21所述的设备,其特征在于,还包括受计算量限制确定指令,用于确定所述CPU是否处于受计算量限制状态,并且确定所述受计算量限制状态的持续时间,还相对于所述被保存时钟频率修改所述时钟频率,以免在所述受计算量限制状态期间存在所述中断条件。
30.如权利要求21所述的设备,其特征在于,所述检测电路包括一个热敏电阻器检测器件。
31.如权利要求21所述的设备,其特征在于,还包括存储器电路,用于将所述预定关系和所述预定设定点存储在所述计算机的存储单元中。
CNB971020663A 1996-01-17 1997-01-17 按cpu活动调节cpu时钟频率而实时管理cpu温度和节电的方法和系统 Expired - Fee Related CN1192298C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1013696P 1996-01-17 1996-01-17
US60/010,136 1996-01-17

Publications (2)

Publication Number Publication Date
CN1168501A true CN1168501A (zh) 1997-12-24
CN1192298C CN1192298C (zh) 2005-03-09

Family

ID=21744093

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB971020663A Expired - Fee Related CN1192298C (zh) 1996-01-17 1997-01-17 按cpu活动调节cpu时钟频率而实时管理cpu温度和节电的方法和系统

Country Status (6)

Country Link
US (1) US5996084A (zh)
EP (1) EP0785498A3 (zh)
JP (2) JPH09305569A (zh)
KR (1) KR100468561B1 (zh)
CN (1) CN1192298C (zh)
TW (1) TW454117B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1332288C (zh) * 2004-01-09 2007-08-15 佛山市顺德区顺达电脑厂有限公司 电脑装置的中央处理器时脉速度实时调整方法
CN1332313C (zh) * 2003-07-14 2007-08-15 Lg电子株式会社 用于控制cpu速度转换的装置和方法
CN100342300C (zh) * 2002-03-15 2007-10-10 英特尔公司 处理器温度控制接口
CN100349098C (zh) * 2005-11-28 2007-11-14 北京中星微电子有限公司 基于任务的动态调节cpu工作频率的方法及系统
CN100435109C (zh) * 2006-12-19 2008-11-19 威盛电子股份有限公司 数字式温度感测系统
CN102129392B (zh) * 2010-01-18 2013-09-04 扬智科技股份有限公司 用来进行适应性频率调整的方法以及相关的电子装置
CN102077271B (zh) * 2008-05-15 2013-09-25 苹果公司 图形处理单元的热管理
CN110955323A (zh) * 2019-11-27 2020-04-03 出门问问信息科技有限公司 一种智能手表设备
US11928002B2 (en) 2019-11-27 2024-03-12 Mobvoi Information Technology Company Limited Data transmission method, apparatus and smart watch device

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719800A (en) * 1995-06-30 1998-02-17 Intel Corporation Performance throttling to reduce IC power consumption
US6411156B1 (en) 1997-06-20 2002-06-25 Intel Corporation Employing transistor body bias in controlling chip parameters
JPH1139868A (ja) * 1997-07-18 1999-02-12 Matsushita Electric Ind Co Ltd 半導体集積回路システム、半導体集積回路、及び半導体集積回路システムの駆動方法
US6065122A (en) * 1998-03-13 2000-05-16 Compaq Computer Corporation Smart battery power management in a computer system
US6112164A (en) * 1998-03-31 2000-08-29 Compaq Computer Corporation Computer system thermal management
JP3573957B2 (ja) * 1998-05-20 2004-10-06 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ内のプロセッサの動作速度制御方法及びコンピュータ
US6172611B1 (en) * 1998-10-19 2001-01-09 Telcom Semiconductor, Inc. Independent hardware thermal sensing and monitoring
US6415388B1 (en) * 1998-10-30 2002-07-02 Intel Corporation Method and apparatus for power throttling in a microprocessor using a closed loop feedback system
US6298448B1 (en) * 1998-12-21 2001-10-02 Siemens Information And Communication Networks, Inc. Apparatus and method for automatic CPU speed control based on application-specific criteria
US6484265B2 (en) * 1998-12-30 2002-11-19 Intel Corporation Software control of transistor body bias in controlling chip parameters
US6182232B1 (en) * 1999-01-29 2001-01-30 Micron Electronics, Inc. Power and thermal management based on a power supply output
US6219795B1 (en) 1999-01-29 2001-04-17 Micron Electronics, Inc. Thermal management apparatus based on a power supply output
US6418535B1 (en) * 1999-04-28 2002-07-09 International Business Machines Corporation Bi-level power saver method for portable or laptop computer
US6624816B1 (en) * 1999-09-10 2003-09-23 Intel Corporation Method and apparatus for scalable image processing
US7050959B1 (en) * 1999-12-23 2006-05-23 Intel Corporation Dynamic thermal management for integrated circuits
US7100061B2 (en) 2000-01-18 2006-08-29 Transmeta Corporation Adaptive power control
US6574739B1 (en) * 2000-04-14 2003-06-03 Compal Electronics, Inc. Dynamic power saving by monitoring CPU utilization
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US7006943B1 (en) * 2000-09-12 2006-02-28 Advanced Micro Devices, Inc. Method and apparatus for using an on-board temperature sensor on an integrated circuit
US6718474B1 (en) * 2000-09-21 2004-04-06 Stratus Technologies Bermuda Ltd. Methods and apparatus for clock management based on environmental conditions
US7263567B1 (en) * 2000-09-25 2007-08-28 Intel Corporation Method and apparatus for lowering the die temperature of a microprocessor and maintaining the temperature below the die burn out
US6910139B2 (en) * 2000-10-02 2005-06-21 Fujitsu Limited Software processing apparatus with a switching processing unit for displaying animation images in an environment operating base on type of power supply
US7260731B1 (en) * 2000-10-23 2007-08-21 Transmeta Corporation Saving power when in or transitioning to a static mode of a processor
US6715089B2 (en) 2001-01-22 2004-03-30 Ati International Srl Reducing power consumption by estimating engine load and reducing engine clock speed
US20030030326A1 (en) * 2001-08-10 2003-02-13 Shakti Systems, Inc. Distributed power and supply architecture
US20030056123A1 (en) * 2001-09-19 2003-03-20 Hsieh Kuang Hsun Power management method for hand-held information processing apparatus
US7111178B2 (en) * 2001-09-28 2006-09-19 Intel Corporation Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US20030074590A1 (en) * 2001-10-12 2003-04-17 Fogle Steven L. Computer system with improved entry into powersave and lock modes and method of use therefor
WO2003041249A1 (en) * 2001-11-05 2003-05-15 Shakti Systems, Inc. Dc-dc converter with resonant gate drive
AU2002343624A1 (en) * 2001-11-05 2003-05-19 Shakti Systems, Inc. Monolithic battery charging device
US6785831B2 (en) * 2001-12-06 2004-08-31 Matsushita Electric Industrial Co., Ltd. Power consumption management apparatus
US7336090B1 (en) 2002-04-16 2008-02-26 Transmeta Corporation Frequency specific closed loop feedback control of integrated circuits
US7180322B1 (en) 2002-04-16 2007-02-20 Transmeta Corporation Closed loop feedback control of integrated circuits
US7941675B2 (en) 2002-12-31 2011-05-10 Burr James B Adaptive power control
TWI262380B (en) * 2002-04-25 2006-09-21 Quanta Comp Inc Dynamic adjustment method for power consumption of computer system
US6685334B2 (en) 2002-04-30 2004-02-03 G-5 Electronics System and method of power management for a solar powered device
US6970698B2 (en) * 2002-07-23 2005-11-29 Sbc Technology Resources, Inc. System and method for updating data in remote devices
US7243243B2 (en) * 2002-08-29 2007-07-10 Intel Corporatio Apparatus and method for measuring and controlling power consumption of a computer system
TW575803B (en) * 2002-10-17 2004-02-11 Uniwill Comp Corp The method of managing portable computer power cord
US7886164B1 (en) 2002-11-14 2011-02-08 Nvidia Corporation Processor temperature adjustment system and method
US7882369B1 (en) 2002-11-14 2011-02-01 Nvidia Corporation Processor performance adjustment system and method
US7849332B1 (en) 2002-11-14 2010-12-07 Nvidia Corporation Processor voltage adjustment system and method
US7205758B1 (en) 2004-02-02 2007-04-17 Transmeta Corporation Systems and methods for adjusting threshold voltage
US7642835B1 (en) 2003-11-12 2010-01-05 Robert Fu System for substrate potential regulation during power-up in integrated circuits
US7228242B2 (en) 2002-12-31 2007-06-05 Transmeta Corporation Adaptive power control based on pre package characterization of integrated circuits
US7949864B1 (en) * 2002-12-31 2011-05-24 Vjekoslav Svilan Balanced adaptive body bias control
US7953990B2 (en) * 2002-12-31 2011-05-31 Stewart Thomas E Adaptive power control based on post package characterization of integrated circuits
US7786756B1 (en) 2002-12-31 2010-08-31 Vjekoslav Svilan Method and system for latchup suppression
TW200416522A (en) 2003-02-25 2004-09-01 Asustek Comp Inc Portable computer carrying desktop computer processor and power management method thereof
US20040215912A1 (en) * 2003-04-24 2004-10-28 George Vergis Method and apparatus to establish, report and adjust system memory usage
WO2004102623A2 (en) * 2003-05-07 2004-11-25 Virtual Silicon Technology, Inc. Managing power on integrated circuits using power islands
JP4033066B2 (ja) * 2003-05-07 2008-01-16 ソニー株式会社 周波数制御装置、情報処理装置、周波数制御方法及びプログラム
TWI220700B (en) * 2003-08-20 2004-09-01 Delta Electronics Inc Programmable logic controller with an auxiliary processing unit
US7141953B2 (en) * 2003-09-04 2006-11-28 Intel Corporation Methods and apparatus for optimal voltage and frequency control of thermally limited systems
US20050068831A1 (en) * 2003-09-30 2005-03-31 Johnson Brian P. Method and apparatus to employ a memory module information file
US7134029B2 (en) * 2003-11-06 2006-11-07 International Business Machines Corporation Computer-component power-consumption monitoring and control
US7240225B2 (en) * 2003-11-10 2007-07-03 Dell Products L.P. System and method for throttling power in one or more information handling systems
FR2862773B1 (fr) * 2003-11-25 2006-04-14 Giga Byte Tech Co Ltd Dispositif et procede pour ajuster automatiquement la frequence de fonctionnement de l'unite centrale d'un ordinateur
US7251302B2 (en) * 2003-12-05 2007-07-31 Dell Products L.P. Method, system and apparatus for quantifying the contribution of inter-symbol interference jitter on timing skew budget
US20050125797A1 (en) * 2003-12-09 2005-06-09 International Business Machines Corporation Resource management for a system-on-chip (SoC)
US7012461B1 (en) 2003-12-23 2006-03-14 Transmeta Corporation Stabilization component for a substrate potential regulation circuit
US7649402B1 (en) 2003-12-23 2010-01-19 Tien-Min Chen Feedback-controlled body-bias voltage source
US7129771B1 (en) 2003-12-23 2006-10-31 Transmeta Corporation Servo loop for well bias voltage source
US7692477B1 (en) * 2003-12-23 2010-04-06 Tien-Min Chen Precise control component for a substrate potential regulation circuit
US7859062B1 (en) * 2004-02-02 2010-12-28 Koniaris Kleanthes G Systems and methods for integrated circuits comprising multiple body biasing domains
US7816742B1 (en) 2004-09-30 2010-10-19 Koniaris Kleanthes G Systems and methods for integrated circuits comprising multiple body biasing domains
US7529947B2 (en) * 2004-03-31 2009-05-05 Marvell International Ltd. Determining power consumption of an application
US7774625B1 (en) 2004-06-22 2010-08-10 Eric Chien-Li Sheng Adaptive voltage control by accessing information stored within and specific to a microprocessor
US7562233B1 (en) 2004-06-22 2009-07-14 Transmeta Corporation Adaptive control of operating and body bias voltages
US7347621B2 (en) 2004-07-16 2008-03-25 International Business Machines Corporation Method and system for real-time estimation and prediction of the thermal state of a microprocessor unit
US7711966B2 (en) * 2004-08-31 2010-05-04 Qualcomm Incorporated Dynamic clock frequency adjustment based on processor load
US7308571B2 (en) * 2004-10-06 2007-12-11 Intel Corporation Overriding processor configuration settings
US7603571B2 (en) * 2004-10-08 2009-10-13 Dell Products L.P. System and method for regulating the power consumption of a computer system
ATE408863T1 (de) * 2004-10-25 2008-10-15 Bosch Gmbh Robert Datenverarbeitungssystem mit variabler taktrate
CN101048748A (zh) * 2004-10-25 2007-10-03 罗伯特·博世有限公司 控制计算机系统的方法和装置
US7386737B2 (en) * 2004-11-02 2008-06-10 Intel Corporation Method and apparatus to control temperature of processor
US7313711B2 (en) * 2004-12-03 2007-12-25 Agere Systems Inc. Adaptive power management in portable entertainment device
US7464277B2 (en) * 2005-01-28 2008-12-09 Dell Products, L.P. Microprocessor performance mode control utilizing sensed temperature as an indication of microprocessor utilization
US7739531B1 (en) 2005-03-04 2010-06-15 Nvidia Corporation Dynamic voltage scaling
JP4492394B2 (ja) * 2005-03-08 2010-06-30 株式会社デンソー マイクロコンピュータ
TW200638267A (en) * 2005-04-22 2006-11-01 Chi Mei Comm Systems Inc Method for adjusting CPU speed of an electronic appliance
US7464278B2 (en) * 2005-09-12 2008-12-09 Intel Corporation Combining power prediction and optimal control approaches for performance optimization in thermally limited designs
US9134782B2 (en) 2007-05-07 2015-09-15 Nvidia Corporation Maintaining optimum voltage supply to match performance of an integrated circuit
US8725488B2 (en) * 2007-07-26 2014-05-13 Qualcomm Incorporated Method and apparatus for adaptive voltage scaling based on instruction usage
US7970566B2 (en) * 2007-11-27 2011-06-28 Microsoft Corporation Correlating power consumption with CPU activity
US8370663B2 (en) 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
US8464086B2 (en) * 2008-03-03 2013-06-11 Hewlett-Packard Development Company, L.P. Software-based power capping
US20090235108A1 (en) * 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US8037325B1 (en) 2008-12-09 2011-10-11 Google Inc. System and method for determining power consumption
US8190939B2 (en) * 2009-06-26 2012-05-29 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs
TWI416313B (zh) * 2009-07-31 2013-11-21 Via Tech Inc 可省電之電腦系統及其省電方法、可省電之電源管理單元
WO2011022018A1 (en) * 2009-08-20 2011-02-24 Hewlett-Packard Development Company, L.P. Cooling device control
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
US8839006B2 (en) 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US8732495B2 (en) 2010-08-31 2014-05-20 Integrated Device Technology, Inc. Systems, apparatuses and methods for dynamic voltage and frequency control of components used in a computer system
TWI502307B (zh) * 2010-12-21 2015-10-01 Intel Corp 用以配置微處理器中之熱設計功率的方法和裝置
US8984305B2 (en) 2010-12-21 2015-03-17 Intel Corporation Method and apparatus to configure thermal design power in a microprocessor
US9043457B2 (en) * 2012-10-25 2015-05-26 Qualcomm Incorporated Dynamic adjustment of an interrupt latency threshold and a resource supporting a processor in a portable computing device
US9529397B2 (en) 2013-03-01 2016-12-27 Qualcomm Incorporated Thermal management of an electronic device based on sensation model
CN104216812B (zh) * 2014-08-29 2017-04-05 杭州华为数字技术有限公司 一种性能监控单元多事件统计的方法和装置
KR102329473B1 (ko) 2014-11-24 2021-11-19 삼성전자주식회사 프로세서와 이를 포함하는 반도체 장치
KR102528692B1 (ko) * 2016-01-04 2023-05-08 한국전자통신연구원 중앙처리장치의 동적 주파수 조절 장치 및 그 방법
US11157329B2 (en) * 2019-07-26 2021-10-26 Intel Corporation Technology for managing per-core performance states
US11687116B2 (en) 2020-09-02 2023-06-27 International Business Machines Corporation Intelligent user equipment central processing unit core clock adjustment
KR20220102286A (ko) * 2021-01-13 2022-07-20 삼성전자주식회사 전자 장치 및 전자 장치에서 사용자 활동 기반 발열 제어 방법

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
JPH05297993A (ja) * 1992-04-16 1993-11-12 Dia Semikon Syst Kk マイクロプロセッサの駆動制御装置
ES2113498T3 (es) * 1992-12-28 1998-05-01 Advanced Micro Devices Inc Circuito de microprocesador con dos señales de temporizacion.
US5721837A (en) * 1993-10-28 1998-02-24 Elonex I.P. Holdings, Ltd. Micro-personal digital assistant including a temperature managed CPU
US5422832A (en) * 1993-12-22 1995-06-06 Advanced Micro Devices Variable thermal sensor
US5422806A (en) * 1994-03-15 1995-06-06 Acc Microelectronics Corporation Temperature control for a variable frequency CPU
US5535401A (en) * 1994-04-05 1996-07-09 International Business Machines Corporation Method and system of power and thermal management for a data processing system using object-oriented program design
US5798667A (en) * 1994-05-16 1998-08-25 At&T Global Information Solutions Company Method and apparatus for regulation of power dissipation
TW282525B (zh) * 1994-06-17 1996-08-01 Intel Corp
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
US5490059A (en) * 1994-09-02 1996-02-06 Advanced Micro Devices, Inc. Heuristic clock speed optimizing mechanism and computer system employing the same
US5451892A (en) * 1994-10-03 1995-09-19 Advanced Micro Devices Clock control technique and system for a microprocessor including a thermal sensor
US5572719A (en) * 1994-11-22 1996-11-05 Advanced Micro Devices Clock control system for microprocessors including a delay sensing circuit
US5623647A (en) * 1995-03-07 1997-04-22 Intel Corporation Application specific clock throttling
US5713030A (en) * 1995-10-11 1998-01-27 Vlsi Technology, Inc. Thermal management device and method for a computer processor
US5630110A (en) * 1996-03-01 1997-05-13 Samsung Electronics Co., Ltd. Method and apparatus for enhancing performance of a processor
US5826083A (en) * 1996-06-20 1998-10-20 Intel Corporation CPU cycle consumption self-regulating method and apparatus
US5774704A (en) * 1996-07-29 1998-06-30 Silicon Graphics, Inc. Apparatus and method for dynamic central processing unit clock adjustment
US5832284A (en) * 1996-12-23 1998-11-03 International Business Machines Corporation Self regulating temperature/performance/voltage scheme for micros (X86)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100342300C (zh) * 2002-03-15 2007-10-10 英特尔公司 处理器温度控制接口
CN1332313C (zh) * 2003-07-14 2007-08-15 Lg电子株式会社 用于控制cpu速度转换的装置和方法
CN1332288C (zh) * 2004-01-09 2007-08-15 佛山市顺德区顺达电脑厂有限公司 电脑装置的中央处理器时脉速度实时调整方法
CN100349098C (zh) * 2005-11-28 2007-11-14 北京中星微电子有限公司 基于任务的动态调节cpu工作频率的方法及系统
CN100435109C (zh) * 2006-12-19 2008-11-19 威盛电子股份有限公司 数字式温度感测系统
CN102077271B (zh) * 2008-05-15 2013-09-25 苹果公司 图形处理单元的热管理
CN102129392B (zh) * 2010-01-18 2013-09-04 扬智科技股份有限公司 用来进行适应性频率调整的方法以及相关的电子装置
CN110955323A (zh) * 2019-11-27 2020-04-03 出门问问信息科技有限公司 一种智能手表设备
US11928002B2 (en) 2019-11-27 2024-03-12 Mobvoi Information Technology Company Limited Data transmission method, apparatus and smart watch device

Also Published As

Publication number Publication date
TW454117B (en) 2001-09-11
US5996084A (en) 1999-11-30
CN1192298C (zh) 2005-03-09
EP0785498A2 (en) 1997-07-23
JP2007128556A (ja) 2007-05-24
KR100468561B1 (ko) 2005-06-21
KR970059886A (ko) 1997-08-12
EP0785498A3 (en) 1999-01-07
JPH09305569A (ja) 1997-11-28

Similar Documents

Publication Publication Date Title
CN1192298C (zh) 按cpu活动调节cpu时钟频率而实时管理cpu温度和节电的方法和系统
CN1024226C (zh) 便携式计算机实时的功率储存
US7373269B2 (en) Processor power consumption control
KR101029414B1 (ko) 프로세서 상태 천이를 검출하기 위해 제공되는 장치 및방법과 머신 액세스 가능 매체와 컴퓨팅 시스템
EP1141812B1 (en) Apparatus and method for automatic cpu speed control
EP1361501B1 (en) Power conservation and thermal management arrangements for computers
JP3637181B2 (ja) コンピュータシステムおよびそのクーリング制御方法
US6243656B1 (en) Cooling mode switching system for CPU
KR100831490B1 (ko) 성능이 효과적인 전력 조절을 위한 방법 빛 장치
CN101379453B (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
US8276015B2 (en) Managing the power-performance range of an application
KR101503579B1 (ko) 가상화 시스템에서 중앙 프로세싱 유닛 전력을 제어하는 시스템 및 방법
US5189314A (en) Variable chip-clocking mechanism
JPH08503566A (ja) コンピュータ装置の電力消費を自動的に減少させる方法
JPH10198456A (ja) マイクロプロセッサ及びその最適化方法
WO2002021245A1 (fr) Procede, dispositif et environnement de commande d'horloge
US10747278B2 (en) Temperature management system, information processing apparatus and controlling method
CN101076770A (zh) 根据可用并行数目改变每条指令能量的方法和设备
Bhalachandra et al. An adaptive core-specific runtime for energy efficiency
EP3281085A1 (en) Dynamic power routing to hardware accelerators
JPH05127785A (ja) パワー・マネージメント・コントロール装置
CN1503102A (zh) 可携式电脑的作业系统读取电池状态的方法
CN1540473A (zh) 电脑系统效能自动调整装置

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050309

Termination date: 20140117