CN100437433C - Java加速器环境中功率管理的系统和方法 - Google Patents

Java加速器环境中功率管理的系统和方法 Download PDF

Info

Publication number
CN100437433C
CN100437433C CNB018032877A CN01803287A CN100437433C CN 100437433 C CN100437433 C CN 100437433C CN B018032877 A CNB018032877 A CN B018032877A CN 01803287 A CN01803287 A CN 01803287A CN 100437433 C CN100437433 C CN 100437433C
Authority
CN
China
Prior art keywords
java
power
voltage
processor
frequency
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 - Fee Related
Application number
CNB018032877A
Other languages
English (en)
Other versions
CN1478224A (zh
Inventor
D·恩沃伊
L·戈夫
B·塞克斯顿
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.)
III Holdings 6 LLC
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1478224A publication Critical patent/CN1478224A/zh
Application granted granted Critical
Publication of CN100437433C publication Critical patent/CN100437433C/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
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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
    • 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

一种提供了基于Java加速器硬件能力管理的能力管理方法被公开。最初,响应初始化Java应用,由主处理器产生Java模式信号。然后,主处理器的能力减少;响应Java模式信号,Java处理器的能力增加。在Java应用终止之后,由Java处理器产生Java完成信号,然后发送信号给系统交还控制给主处理器。

Description

Java加速器环境中功率管理的系统和方法
技术领域
本发明一般涉及硬件加速Java执行,更具体而言是包含主/从Java加速环境的功率管理。
背景技术
本申请涉及美国专利申请No.09/565,679(代理人卷号No.VTI1P333),提交于2000年5月4日,题目为:“一种具有Java堆栈、算术逻辑单元并使用相同多堆栈点及方法的智能子系统体系结构”,在此全文引入作为参考。
本申请同时还涉及美国专利申请No.09/670,496(代理人卷号No.PHILP337),题目为:“校验Java队列低上层边界的系统和方法”,在此全文引入作为参考。当今世界的计算机程序设计提供了许多高水平的编程语言。例如,Java就在相对较短的时间中获得了广泛的应用,这在很大程度上归功于无处不在的因特网的成功。Java的流行,至少在部分上是因为它平台的独立性、面向对象和有生命力的本性。而且,Java剔除了许多必须由包括存储器管理和跨平台接口的应用程序员所执行的乏味和易错的任务。这样,Java程序员能够更好的将精力集中于设计和函数问题。
使用Java处理器来执行Java应用,可以仅仅通过Java虚拟机(JVM)的形式由软件来象征性地实现。但是,因为伴随着执行软件中的程序,而要产生的问题是:JVM操作缓慢的问题使人烦扰。
传统上,两种方法被用来提高Java编译的性能,它们被称为本地Java执行和部分硬件编译Java指令。本地Java执行方法使用硬件来构建真正的Java处理器。但是,这种方法面对着一个严峻的缺点就是:它抹杀了Java“独立于机器之外”的概念,从而排斥了大量的软件,它们不再能够在这样的Java处理器上执行。
部分硬件编译Java指令方法使用硬件辅助来提高编译过程。这一结构通常被称为Java加速器。基本上,它在性能上近似于执行0等待状态存储器之外的汇编语言编译器。
一种Java加速器通过采用主/从结构来实现。其中:主处理器执行除Java指令之外的所有指令;从处理器仅仅执行Java指令。但是,使用该方法的传统系统充斥着主处理器和从处理器之间功率管理的问题。当两个处理器均用在小型、由电池供电、移动设备时这个问题尤为突出,那里的节能就尤为重要。
历史上,伴随着计算设备功率管理的问题来源于尝试着监测系统或系统内的各个部分的有意义的工作。通常,当监测设备的功率能够被关闭时,常规的功率管理系统协同空闲等待记时器,来监测输入和输出信号(I/O)。
在其它的传统功率管理系统中,处理器的接口频率是变化的,因此来减少计算机系统的功率消耗。此外,其它的传统功率管理系统使用被称为时钟遏制的方法来降低微处理器的功率消耗和计算机系统的功率消耗。在这种方法中,当微处理器被认为没有进行它的有意义工作时,微处理器的输入将改变,这就有效地通知微处理器停止使用内部时钟。通过改变微处理器的输入,微处理器能够减缓遏制的恢复,这样微处理器就不会被烧毁,而且同时减少计算机系统的功率消耗。尽管近期现有的功率管理技术判定程序已经通过使它们成为操作系统(OS)的中心而得到了提高,但是许多传统的功率管理判定仅仅是猜测。
尽管上述方法或许能够达到减少功率消耗的结果,但却没有一种方法综合地节减系统中每一个处理器的操作电压,从而能进一步减少系统的功率消耗。能够既控制主处理器又控制Java处理器的操作电压和操作频率将允许优化功率,平衡计算机系统的性能。
从发展的观点来说,需要提供一种提高Java加速器功率管理的系统和方法。功率管理系统能够控制主处理器和Java处理器操作电压和操作频率。而且,功率管理系统在操作状态改变时能够保证没有功率供应和数字电路应力发生;并确保在处理器之间存储器更新时,有充沛的时间可被利用。
发明内容
概括地说,本发明通过提供提高Java加速器的功率管理系统满足这些需要。本发明的功率管理系统能够控制主处理器和Java处理器操作电压和操作频率,因此允许优化计算机系统中的功率和性能。在一种实施方案中,公开一种为基于Java加速器硬件提供功率管理的功率管理方法。最初,响应Java应用的启动,由主处理器提供Java模式信号。随后,响应Java模式信号,给该主处理器的功率被减少,给Java处理器的功率被增加。当Java应用的执行被终止时,从该Java处理器产生一个Java完成信号,从而发送信号给该系统将控制权交还给该主处理器。
在另一种实施方案中,公开一种为基于Java加速器硬件提供功率管理的功率管理方法。功率管理系统包括与功率产生电路连接的主处理器。主处理器包括能提供Java模式信号的Java模式信号端口。功率管理系统还包括与功率产生电路连接的Java处理器。Java处理器包括能提供Java完成信号的Java完成信号端口。在使用中,响应接收Java模式信号,该功率产生电路减少给主处理器的功率,并且增加给Java处理器的功率。此外,响应接收Java完成信号,该功率产生电路增加给主处理器的功率,并减少给Java处理器的功率。
在本发明的进一步实施方案中公开一种抑制提供给处理器变化的斜坡(ramp)电路方法。斜坡电路方法从获得一个处理器所要设定的、代表希望的频率或电压的目标值开始。随后,目标值和当前值相比较而获得一个差值。与目标值类似,当前值是处理器当前操作的当前频率或电压。当差值在预定义的阈值之外时,调整当前值。这里的差值可以是值的范围或者是一个单一的值,例如:0。以上操作然后被重复,直至差值在预定义的阈值之内。
有利的是,本发明通过控制主处理器和Java处理器的操作频率和操作电压,允许优化计算机系统的功率和性能。而且,当频率和电压被控制时,电压在频率增加之前而增加,频率在电压减少之前被减少。这就保证了系统不会在当前电压下,以过快的频率运行,从而,节约了功率。
最后,对本领域的技术人员来说,本发明中的功率管理系统在操作状态改变时能够保证没有功率供应和数字电路应力发生;并确保在处理器之间存储器更新时,有充沛的时间可被利用。本发明的其它优点在下面的详细描述中将会是显而易见的,结合附图,本发明的原则将通过举例的方式予以说明。
附图说明
本发明,包含着更多的优点,最好通过参照下列描述、并结合附图予以更好的理解。附图中:
图1是说明结合本发明一种实施方案的,Java硬件加速器系统方块图。
图2是说明结合本发明一种实施方案的,功率管理系统方块图。
图3是说明结合本发明一种实施方案的,可效仿的斜坡电路方块图。
图4是说明结合本发明一种实施方案的,为基于Java加速器硬件提供功率管理程序的流程图。
图5是说明结合本发明一种实施方案的,抑制提供给处理器变化的斜坡电路程序的流程图。
具体实施方式
本发明公开的是一种Java加速器功率管理系统。概括地说,本发明的功率管理系统在Java加速器中,通过Java程序被启动时减少主处理器的功率,增加Java处理器的功率来管理功率。当Java应用被终止时,该过程被逆转。
在下面的描述中,许多细节被提出以提供一个对本发明的透彻了解。然而,对本领域的技术人员来说,本发明可以无需特定部分或全部所有的细节而进行实践。另一方面,为了不必要地混淆本发明,众所周知的程序步骤没有进行详述。
图1是说明结合本发明一种实施方案的,Java硬件加速器系统10的方块图。Java硬件加速器系统10包括与主处理器14、从(Java)处理器16和系统存储器18连接的系统总线12。此外,Java硬件加速器系统10还包括在主处理器14与Java处理器16之间连接的总线仲裁20。
Java硬件加速器系统10是双处理器系统,其中:Java处理器16来执行很多Java指令,主处理器14来执行包括复杂Java指令的所有其它指令。如同Java是天生的“机器中的机器”典范,Java处理器16是从处理器,作为“内部机器”。Java处理器16被“外部机器”,即主处理器14所启动和控制。
主处理器14可以被嵌入任何处理器,包括当前的工业标准装置,例如:X86、ARM和MIPS装置。Java处理器16优选的是:包含指令和数据缓存和内部SRAM的基于堆栈的处理器。而且,Java处理器16优选的包括基于寄存器堆栈,正如在涉及到的美国专利申请No.09/565,679(代理人卷号No.VTI1P333),提交于2000年5月4日,题目为:“一种具有Java堆栈、算术逻辑单元和使用相类似的多堆栈点及方法的智能子系统体系”,它在此全文引入作为参考。
一般来讲,主处理器14支持操作系统、非Java应用和复杂的Java指令。在一种实施方案中,额外的专门ARM,或其等价物处理器(未示出)被用来处理复杂的Java指令。
Java处理器16通常至少能够执行下列Java指令:加载、储存、计算、跳转、堆栈和分区。优选的,Java处理器16内建的支持所有的计算指令,包括整数和浮点。如前面所述,主处理器14执行更复杂的指令,例如:程序调用。当复杂指令被解码时,Java处理器16产生一个中断,所有的在数据缓存中标记行被写入系统存储器18中。然后,Java处理器16停止执行。
优选的,Java处理器16包括用于快速访问当前被执行的程序指令缓存。本地数据被用来支持留驻内部SRAM的程序,它是典型的单口,并且可被主处理器14和Java处理器16所访问。当Java处理器16执行时,主处理器14锁定所有的本地数据区和堆栈。此外,数据缓存包括快速访问的非本地变量,如:队列。
图2是说明结合本发明一种实施方案的,功率管理系统50的方块图。功率管理系统50包括主处理器端口52和Java处理器部分54。主处理器端口52包括与一组主常态操作电压和频率寄存器58和一组主低功率电压和频率寄存器60连接的主开关寄存器56。此外,功率管理系统50包括与主斜坡电路64和主处理器14连接的一组可编程电压和频率发生器62。主处理器14包括用于在Java应用启动时提供Java模式信号68的Java模式信号端口。
Java处理器部分54包括与一组Java常态操作电压和频率寄存器72、一组Java低功率电压和频率寄存器74和空闲延时记时器连接的Java开关寄存器70。此外,功率管理系统50包括与Java斜坡电路80和Java处理器16连接的一组可编程电压和频率发生器78。Java处理器16包括当Java应用完成时,用来提供Java完成信号84的Java完成信号端口。
每个编程电压和频率发生器62和78为由主斜坡电路64和Java斜坡电路80提供的频率变化提供真正的建立。在操作中,每个可编程控制器电压和频率发生器62和78用低频时钟信号锁定,允许合适的斜坡电路为每个时钟提供新的功率。
每个处理器14和16基本上有两种操作模式,常态模式和低功率操作模式。在常态操作模式中,主处理器14和Java处理器16在通常被看作主处理器14或Java处理器16嵌入处理器通常工作状态的电压和频率下操作。在低功率操作模式中,主处理器14或Java处理器16在低功率电压和频率下操作,它们低于主处理器14或Java处理器16嵌入的处理器通常工作状态。
当处理器14/16从运行在有意义工作、使用常态操作,切换至处理器14/16没有运行在有意义工作、低功率操作模式时,本发明提供了增强的功率节约。功率的节约通过当每个处理器14/16不被使用时,降低操作电压和操作频率,从而得到明显的增强。
开始时,主处理器的常态操作电压和常态操作频率值被储存在一组常态操作电压和频率寄存器58中。主处理器低功率操作电压值和主处理器的低频率值被储存在一组主低功率电压和频率寄存器72中。Java处理器低功率操作电压和Java处理器低操作频率值则被储存在一组Java低电压和频率寄存器74中。
这样,几组主和Java常态操作电压和频率寄存器58和72各自定义主处理器14和Java处理器16的常态操作电压和频率。相类似,几组主和Java低功率操作电压和频率寄存器60和74各自定义主处理器14和Java处理器16的低功率操作电压和频率。
在通常的操作中,主处理器14根据它的常态操作模式,即被主操作电压和频率寄存器所定义的模式进行操作,同时Java处理器16根据被Java低功率和频率寄存器74它的低功率操作模式进行操作。如同先前讨论的那样,主处理器14通常执行所有非Java指令,以及Java处理器不能执行的复杂的Java指令,如:程序调用。当初化一个Java应用时,主处理器产生一个Java模式信号68,通知功率管理系统50一个Java应用将要被Java处理器16所执行。主寄存器开关56和Java寄存器开关70接收Java模式信号68,命令它们去切换主处理器14和Java处理器16操作模式。
当接收到Java模式信号68,主寄存器开关56根据存储在主低功率电压和频率寄存器60中的值,为主处理器14设定主目标电压和频率值。与之相类似的,Java寄存器开关70根据存储在Java常态操作电压和频率寄存器72中的值,为Java处理器16设定Java目标电压和频率值。
此时,主斜坡电路64使用主目标电压和频率值,逐步地减少主处理器当前的电压和频率到主目标电压和频率值。在相类似的方法中,Java斜坡电路使用Java目标电压和频率值,逐步地提高Java处理器当前的电压和频率到Java目标电压和频率值。
主斜坡电路64和Java斜坡电路80各自提供小的电压和频率增量随着时间的变化而增加或减少,直到主处理器和Java处理器当前的电压和频率达到它们各自的目标电压和频率值。当每次电压和频率减少之后,主斜坡电路64与主处理器14连接,为一组可编程的电压和频率发生器62提供新的电压和频率减量值。该组可编程的电压和频率发生器62然后为主处理器14的电压和频率设定新的电压和频率减量值。
相类似的,当每次增加之后,Java斜坡80电路与Java处理器16连接,为一组可编程的电压和频率发生器78提供新的电压和频率增量值。该编程的电压和频率发生器78然后为Java处理器16的电压和频率设定新的电压和频率增量值。在此方法中,当一个Java应用被启动时,功率在主处理器14中被减少,在Java处理器16中增加,其结果就是功率实质上在系统50中被恢复了。
然后,Java处理器16开始执行Java应用。Java处理器16将逐步地执行Java应用,直至其完成,或者直至遇到一个Java处理器16不能完成的复杂的Java指令。在此时,Java处理器16产生一个Java完成信号84或者中断,它将被主寄存器开关56和Java寄存器开关70接收,通知电源管理系统50,Java应用的执行被终止了。
当接收到Java完成信号84,主寄存器开关56根据存储在主常态操作电压和频率寄存器58中的值来设定主目标电压和频率值。相类似的,Java寄存器开关70根据存储在Java低功率操作电压和频率寄存器74中的值,为Java处理器16设定Java目标电压和频率值。
在此时,主斜坡电路64使用主目标电压和频率值,逐步地增加主处理器14当前电压和频率到主目标电压和频率值。在相类似的方法中,Java斜坡电路80使用Java目标电压和频率值,逐步地减少Java处理器14当前电压和频率到Java目标电压和频率值。
正如上面所提及的,主斜坡电路64和Java斜坡电路80各自提供小的电压和频率增量随着时间的变化而增加或减少,直到主处理器和Java处理器当前电压和频率达到它们各自的目标电压和频率值。当每次电压和频率增加之后,主斜坡电路64与主处理器14连接,为一组可编程的电压和频率发生器62提供新的电压和频率增量值。该组可编程的电压和频率发生器62系列然后为主处理器14的电压和频率设定新的电压和频率增量值。
相类似的,当每次减少之后,Java斜坡电路80与Java处理器16连接,为一组可编程的电压和频率发生器78提供新的电压和频率减量值。该组可编程的电压和频率发生器78然后为Java处理器16的电压和频率设定新的电压和频率增量值。这样,当Java应用的执行被终止时,功率在主处理器14中增加,在Java处理器16中被减少。此时,主处理器14重新获得系统的控制,继续执行计算机的指令。
在Java执行中,Java处理器16在本地缓存中存储用于执行各种Java指令的信息。当Java执行被终止时,这个信息通过系统总线使得主处理器14来说是可以获取它。为了在Java处理器16被关闭来降低功率操作模式之前提供这样的信息,本发明使用一个空闲延迟计时器76连接在Java寄存器开关70和Java斜坡电路80之间完成此项任务。
空闲延迟计时器76通过设定Java目标电压和频率值到存储在Java低操作电压和频率寄存器74中低值,来延迟Java电压斜坡电路。延迟的长度是Java处理器16缓存大小的函数,它被设定为:在Java处理器16的功率被减少之前,缓存中的信息能同时被传输到系统存储器。要说明的是,空闲延迟计时器76仅仅在Java处理器16产生一个Java完成信号84之后才起作用。
图3是说明结合本发明一种实施方案的,可效仿的斜坡电路100的方块图。可仿效的斜坡电路100使用的是频率斜坡电路。但是,斜坡电路100同样也可以使用电压斜坡电路给寄存器提供电压值而不是频率值。
斜坡电路100包括与目标频率寄存器104、当前频率寄存器106和偏移量表108连接的比较器102。此外,斜坡电路100还包括与偏移量表108、当前频率寄存器106连接的偏移量频率寄存器110。最后,斜坡电路100包括一个频率状态机器112,来提供对斜坡电路100的控制。应当指出的是,当前频率寄存器106同样与可编程频率发生器114连接。
当功率模式在常态和低功率模式之间进行切换时,电压和频率的变化使得主处理器和Java处理器优选地被抑制,以避免给功率供应和数字逻辑增加应力。
如同其后更加详尽的说明,斜坡电路100提供给处理器电压和频率一个小的增量变化,确保这些变化的正确的优先权。在一般情况下,当处理器的功率由低功率模式切换到常态模式时,电压将在频率增加前增加。与之相反,当处理器的功率由常态功率模式到低功率模式进行切换时,频率将在电压减少前减少。
在操作中,斜坡电路100由频率状态机器112提供相对低的时钟信号所封锁。如同前面所讨论的,斜坡电路100从一组常态操作或者低功率频率寄存器获得一个目标频率,这取决于当前操作模式和存储在频率寄存器104中的值。相应处理器当前操作频率存储在当前频率寄存器106中。
在各个时钟信号中,比较器102比较存储在目标频率寄存器104与存储在当前频率寄存器106中的值,而获得差值。这个差值是目标频率寄存器104与存储在当前频率寄存器106中的值的差。
如果差值在预定义的阈值之外,表格查找将使用差值和偏移表108。表格查找的结果将被存储在频率偏移寄存器110中。预定义的阈值可以是一定范围的可接受的频率值、信号值或0。设定阈值为0将使在差值不为0时,其结果在阈值之外。任何差值在阈值的范围之外都会使得其差值在阈值之外。
其后,存储在频率偏移寄存器110中的值将在存储在当前频率寄存器106中值基础上增加或减少,其结果存储在当前频率寄存器中。优选地,偏移表被设定为提供频率偏移,其结果是频率变化是平滑的线性频率增长。可选择的,频率偏移寄存器110可以被忽略,偏移量将直接从当前频率寄存器114和偏移表108中增加或减去。新的频率值存储在当前频率寄存器106中,然后由可编程频率发生器114编程,来设定相应处理器到新的当前频率值。
斜坡电路100继续上述操作,直至差值达到预定义的阈值之内。此时,相应的处理器将在目标频率下操作,开始执行适当的指令。在其它的实施方案中,上述操作在阈值达到后将继续。在这个实施方案中,0值将被存储在偏移寄存器110中,其结果是当前的频率值不会有太多的变化。当一个新的目标频率被存储在目标频率寄存器中时,斜坡电路100自动进行操作来提升频率到新的目标值。
如上面所提到的,应当指出,斜坡电路100可以作为电压斜坡电路来操作,即通过在斜坡电路100中改变频率值来改变电压值、将电路100连接到一个可编程电压发生器。
图4是说明结合本发明一种实施方案的,为基于Java加速器硬件提供功率管理程序200的流程图。在202的初始操作中,预处理操作被执行。预处理操作包括:初始化Java程序的计数和存储指针,其它的预处理操作对本领域的技术人员来讲中是浅显的。
在Java模式操作204中,响应启动Java应用,由主处理器提供一个Java模式信号。在常态的操作中,主处理器根据它的主常态操作电压和频率寄存器所定义的操作模式来进行操作;而Java处理器则根据由Java低功率操作电压和频率寄存器所定义的,低功率操作模式来进行操作。主处理器执行所有非Java指令,包括Java处理器不能执行的复杂Java指令,如程序调用。启动Java应用时,主处理器产生一个Java模式信号,通知功率管理系统,Java应用将被Java处理器所执行。然后,主寄存器开关和Java寄存器开关接收Java模式信号,命令它们来在主和Java处理器间切换操作模式。
接下来,在主功率降低操作206中,响应Java模式信号,主处理器的功率被减少。接收到Java模式信号,主寄存器开关参照存储在主低功率电压和频率寄存器中的值来设定主处理器的主目标电压和频率值。然后,主斜坡电路参照存储在主低功率电压和频率寄存器中的值,使用主目标电压和频率值来逐步地减少当前的电压和频率至主目标电压和频率值。
如同前面所讨论的那样,主斜坡电路提供小的电压和频率增量随着时间的变化来增加或减少,直到当前的电压和频率达到它们各自的目标电压和频率值。当每次电压和频率减少之后,与主处理器连接的主斜坡电路为该组可编程的电压和频率发生器提供新的电压和频率减量值。该组可编程的电压和频率发生器然后为主处理器的电压和频率设定新的电压和频率减量值。
在Java功率增加操作208中,响应Java模式信号,Java处理器的功率增加。当接收到Java模式信号,Java寄存器参照存储在Java常态电压和频率寄存器中的值为Java处理器开关设定Java目标电压和频率值。Java斜坡电路则使用Java目标电压和频率值逐步增加Java处理器的当前电压和频率到相应的Java目标电压和频率值。
当每次电压和频率增加之后,与Java处理器连接的Java斜坡电路为该组可编程的电压和频率发生器提供新的电压和频率增量值。该组可编程的电压和频率发生器然后为Java处理器的电压和频率设定新的电压和频率增量值。当达到它的通常操作电压和频率时,Java处理器开始执行Java应用,并且逐步地继续执行Java应用,直至其完成,或者直至遇到一个Java处理器不能完成的复杂的Java指令。
在Java完成信号操作210中,当Java应用执行被终止时,Java处理器将产生一个Java完成信号。此时,Java处理器产生一个由主寄存器开关和Java寄存器开关接收的Java完成信号或中断。Java完成信号通知功率管理系统,Java应用的执行被终止了。
然后,响应Java完成信号,在Java完成操作212中,主处理器的功率被增加,Java处理器的功率被减少。接收到Java完成信号,主寄存开关参照由主常态操作电压和频率寄存器的值设定主目标电压和频率值。相类似的,Java寄存器开关参照由Java低操作电压和频率寄存器的值设定Java目标电压和频率值。
此时,主斜坡电路使用主目标电压和频率值,逐步地增加主处理器的当前电压和频率值至主目标电压和频率值。在相类似的方法中,Java斜坡电路使用Java目标电压和频率值,逐步地减小Java处理器当前电压和频率到Java目标电压和频率值。
正如上面所提及的,主斜坡电路和Java斜坡电路各自提供小的电压和频率增量随着时间的变化而增加或减少,直到主处理器和Java处理器当前的电压和频率达到它们各自的目标电压和频率值。当每次电压和频率增加之后,主斜坡电路与主处理器连接,为一组可编程的电压和频率发生器提供新的电压和频率增量值。该组可编程的电压和频率发生器然后为主处理器的电压和频率设定新的电压和频率增量值。
相类似的,当每次减少之后,Java斜坡电路与Java处理器连接,为一组可编程的电压和频率发生器提供新的电压和频率减量值。该组可编程的电压和频率发生器然后为Java处理器的电压和频率设定新的电压和频率减量值。在此方法中,当Java应用的执行被终止时,功率在主处理器中被增加,在Java处理器中被减少。此时,主处理器重新获得系统的控制,继续执行计算机的指令。
当Java执行被终止时,存储在本地存储器缓冲区中的信息通过系统总线使得主处理器可以获取它。为了在Java处理器被关闭来降低功率操作模式之前提供这样的信息,本发明使用一个空闲延迟记时器连接在Java寄存器开关和Java斜坡电路之间协同完成此项任务。
空闲延迟记时器通过设定Java目标电压和频率值到由Java低操作电压和频率寄存器中的低值,来延迟Java电压斜坡电路。延迟的长度是Java处理器缓存大小的函数,它被设定为:在Java处理器的功率被减少之前,缓存中的信息被传输到系统存储器中去。要说明的是,空闲延迟记时器被优选地设为:仅仅在Java处理器产生一个Java完成信号之后才起作用。
后处理操作然后在操作214中被执行。后处理操作包括:Java方法调用的执行,其它的后处理操作对本领域的技术人员来说是浅显的。有利地是,既能控制主处理器和Java处理器的操作频率又能控制其操作电压将在计算机系统中优化功率和性能。
图5是说明结合本发明一种实施方案的,抑制提供给处理器变化的斜坡电路程序300的流程图。尽管斜坡电路程序300被描述为一个电压斜坡电路程序,斜坡电路程序同样可以被用于提升处理器频率或电压。通过用频率值代替电压值,斜坡电路程序300可以被用作频率斜坡电路程序。在初始操作302中,预处理被执行。预处理操作包括:初始化常态操作、低功率电压和频率寄存器,其它的预处理操作对本领域的技术人员来说是浅显的。
在目标值操作304中,目标值从电压和频率寄存器中被获取。目标电压是从常态操作或者低电压寄存器中获取得,它取决于当前功率操作模式,并被存储在目标电压寄存器中。相应处理器的当前操作电压值存储在当前电压寄存器中。
接下来,在比较器306中,目标值和当前值进行比较,而获得差值。在每个时钟信号中,比较器比较存储在目标频率寄存器和存储在当前频率寄存器中的值,而获得差值。这个差值是存储在目标频率寄存器和存储在当前频率寄存器中的值的差。
随后,一个是否该差值在预定义的阈值之外的判定将在操作308中被执行。预定的阈值可以是一定范围的可接受的频率值、信号值或0。设定阈值为0将使得当差值不为0时,其结果在阈值之外。设定阈值为单一值表示,则该值得范围在0和该单一值之间。一旦该差值在阈值的范围之外,均判断差值超出阈值。如果差值超出了预定义的阈值,斜坡电路进程300继续执行查表操作310。否则,斜坡电路操作300将在312操作中完成。
差值在查表操作310中进行偏移表查表操作。偏移表提供包括多个电压值。通过在偏移表中查找差值,可以获得一个偏移电压值。偏移表中的偏移值然后被储存在偏移电压寄存器中。优选地,偏移表被设定为提供电压偏移,其结果是电压变化是平滑的线性电压增长。
在调整操作314中,当前的值基于在操作310中获得的偏移电压被调整。存储在偏移电压寄存器中的值被从存储在当前电压寄存器中增加或者减去,结果存储在当前电压寄存器中。可选择的,电压偏移寄存器可以被忽略,偏移量将直接从当前电压寄存器和偏移表中增加或减去。
在电压编程操作316中,新的当前电压值被提供给可编程的电压发生器。存储在当前电压寄存器中的新的电压值,被用来编写可编程电压发生器,设定所涉及处理器至新的当前电压值。斜坡电路程序300然后和操作304进行其它比较,这里的当前电压寄存器包括新的调整过的当前电压值。
在操作312中,当前的电压值包含在预定的阈值内,斜坡电路程序300就完成了。此时,所涉及的处理器将在目标电压下操作,可以开始执行合适的指令。
在其它的实施方案中,当预定的阈值达到之后,斜坡电路进程300继续和操作304的其它比较。在这个实施方案中,0值被存储在偏移寄存器中,其结果是当前的电压不会发生任何的变化。当新的目标电压被储存在目标电压寄存器中时,斜坡电路自动地继续操作,提升当前的电压至新的目标电压。
斜坡电路300确保电压和频率变化的正确优先权。在一般情况下,当处理器的功率由低功率模式到常态模式进行切换时,电压将在频率增加前增加。与之相反,当处理器的功率由常态功率模式到低功率模式进行切换时,频率将在电压减小前减小。
有利的是,斜坡电路300在操作状态改变时能够保证没有功率供应和数字电路应力发生;并确保在处理器之间存储器更新时,有充沛的时间可被利用。
尽管前面发明细节的详细描述其目在于理解的澄清,然而显然会在附属的权利要求范围中会有一定的变化和调整。相应的,本实施方案可以被看作是说明而不是限制,并且发明也并不局限于给定的细节,但是,范围内的调整和其等价物或许会包含在附属的权利要求中。

Claims (10)

1.一种为基于硬件的Java加速器提供功率管理的功率管理方法,所述功率管理方法包括以下操作:
响应Java应用的启动,由主处理器(14)提供Java模式信号(68);
响应所述Java模式信号,减少给所述主处理器(14)的功率;
响应所述Java模式信号,增加给Java处理器(16)的功率;
当所述Java应用的执行终止时,由所述Java处理器(16)产生一Java完成信号(84);
所述功率管理方法还包括以下操作:
响应所述Java完成信号(84),增加给所述主处理器(68)的功率;和
响应所述Java完成信号(84),减少给所述Java处理器(16)的功率;
其中使用斜坡电路处理来增加/减少给处理器的功率。
2.权利要求1中所述的功率管理方法,其中功率包括电压和频率。
3.权利要求1中所述的功率管理方法,其中所述斜坡电路处理包括如下操作:
(a)从目标功率寄存器获得目标功率值(104);
(b)比较(102)所述目标功率值(104)和来自当前功率寄存器的当前功率值(106);
(c)在所述当前功率值(106)小于所述目标功率值(104)时,增加所述当前功率值(106);
(d)重复操作(a)-(c),直至所述当前功率值与所述目标功率值之间的差值处于一个预先定义的阈值之内为止。
4.权利要求3中所述的功率管理方法,其中按照从功率偏移量表(108)中获取的量来增加所述当前功率值(106)。
5.权利要求1中所述的功率管理方法,其中所述斜坡电路处理包括以下操作:
(a)从目标功率寄存器获得目标功率值(104);
(b)比较(102)所述目标功率值(104)和来自当前功率寄存器的当前功率值(106):
(c)在所述当前功率值(106)大于所述目标功率值(104)时,减少所述当前功率值(106);
(d)重复操作(a)-(c),直至在所述当前功率值与所述目标功率值之间的差值处于一个预先定义的阈值之内为止。
6.权利要求5中所述的功率管理方法,其中按照从功率偏移量表(108)中获取的量来减少所述当前功率值(104)。
7.一种为基于硬件的Java加速器提供功率管理的功率管理系统,所述功率管理系统包括:
与功率产生电路连接的主处理器(14),所述主处理器(14)具有Java模式信号端口,能够响应Java应用的启动,提供Java模式信号(68);
与功率产生电路连接的Java处理器(16),所述Java处理器(16)具有Java完成信号端口,能够当所述Java应用的执行终止时,提供Java完成信号(84);
其中响应接收到Java模式信号(68),所述功率产生电路减少给主处理器(14)的功率并且增加给Java处理器(16)的功率;响应接收到Java完成信号(84),所述功率产生电路增加给主处理器(14)的功率并且减少给Java处理器(16)的功率;
连接于所述主处理器(14)的第一组可编程电压和频率产生器(62);
连接于Java处理器(16)的第二组可编程电压和频率产生器(78);
其中第一组可编程电压和频率产生器(62)能够调节所述主处理器(14)的电压和频率;第二组可编程电压和频率产生器(78)能够调节所述Java处理器(16)的电压和频率;
连接于第一组可编程电压和频率产生器(62)的主斜坡电路(64),所述主斜坡电路(64)能够把渐增的电压和频率变化提供给第一组可编程电压和频率产生器(62);
连接于第二组可编程电压和频率产生器(78)的Java斜坡电路(80),所述Java斜坡电路(80)能够把渐增的电压和频率变化提供给第二组可编程电压和频率产生器(78);
由此所述主斜坡电路(64)和Java斜坡电路(80)就抑止了提供给主处理器(14)和Java处理器(16)的电压和频率变化。
8.权利要求7中所述的功率管理系统,其中所述主斜坡电路(64)和所述Java斜坡电路(80)根据它们相关的处理器(14;16)的目标功率值(104)和当前功率值之间的差值从功率偏移量表来确定要改变当前电压和频率的量。
9.权利要求8中所述的功率管理系统,其中为所述主处理器(14)存储常态操作电压和频率值(58)和低功率电压和频率值(60),而为所述Java处理器(16)存储另一常态操作电压和频率值(72)和另一低功率电压和频率值(74)。
10.权利要求9中所述的功率管理系统,其中所述主斜坡电路(64)提供在由所述主处理器(14)的所述常态操作电压和频率值(58)和低功率电压和频率值(60)所定义的范围值之内的渐增的电压和频率的变化;
而所述Java斜坡电路(80)提供在由所述Java处理器(16)的所述另一常态操作电压和频率值(72)和另一低功率电压和频率值(74)所定义的范围值之内的渐增的电压和频率变化。
CNB018032877A 2000-08-23 2001-08-17 Java加速器环境中功率管理的系统和方法 Expired - Fee Related CN100437433C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/645,468 2000-08-23
US09/645,468 US6766460B1 (en) 2000-08-23 2000-08-23 System and method for power management in a Java accelerator environment

Publications (2)

Publication Number Publication Date
CN1478224A CN1478224A (zh) 2004-02-25
CN100437433C true CN100437433C (zh) 2008-11-26

Family

ID=24589147

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018032877A Expired - Fee Related CN100437433C (zh) 2000-08-23 2001-08-17 Java加速器环境中功率管理的系统和方法

Country Status (7)

Country Link
US (1) US6766460B1 (zh)
EP (1) EP1368729B1 (zh)
JP (1) JP2004507814A (zh)
KR (1) KR20020085883A (zh)
CN (1) CN100437433C (zh)
AT (1) ATE528708T1 (zh)
WO (1) WO2002017064A2 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1387258A3 (en) * 2002-07-31 2008-01-02 Texas Instruments Incorporated Processor-processor synchronization
TW583530B (en) * 2002-08-20 2004-04-11 Via Tech Inc Method of using N division operation to switch CPU work voltage
US8086884B2 (en) * 2002-12-16 2011-12-27 Hewlett-Packard Development Company, L.P. System and method for implementing an integrated circuit having dynamically variable power limit
US7444524B2 (en) * 2002-12-30 2008-10-28 Intel Corporation Dynamic voltage transitions
US7203857B2 (en) * 2003-03-28 2007-04-10 Elliptic Semiconductor Inc. On-demand clock switching
US7281149B2 (en) * 2004-02-24 2007-10-09 Hewlett-Packard Development Company, L.P. Systems and methods for transitioning a CPU from idle to active
US7370311B1 (en) 2004-04-01 2008-05-06 Altera Corporation Generating components on a programmable device using a high-level language
US7409670B1 (en) * 2004-04-01 2008-08-05 Altera Corporation Scheduling logic on a programmable device implemented using a high-level language
US7536567B2 (en) * 2004-12-10 2009-05-19 Hewlett-Packard Development Company, L.P. BIOS-based systems and methods of processor power management
US7502948B2 (en) * 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7346863B1 (en) 2005-09-28 2008-03-18 Altera Corporation Hardware acceleration of high-level language code sequences on programmable devices
US7752480B2 (en) * 2006-08-18 2010-07-06 International Business Machines Corporation System and method for switching digital circuit clock net driver without losing clock pulses
US8086977B2 (en) * 2006-08-18 2011-12-27 International Business Machines Corporation Design Structure for switching digital circuit clock net driver without losing clock pulses
US7962775B1 (en) * 2007-01-10 2011-06-14 Marvell International Ltd. Methods and apparatus for power mode control for PDA with separate communications and applications processors
JP5084372B2 (ja) * 2007-07-03 2012-11-28 キヤノン株式会社 データ処理装置およびデータ処理装置の制御方法
GB2452778A (en) * 2007-09-17 2009-03-18 Toshiba Res Europ Ltd Linking dynamic voltage scaling in master and slave modules
US8949635B2 (en) * 2007-09-28 2015-02-03 Intel Corporation Integrated circuit performance improvement across a range of operating conditions and physical constraints
US7992015B2 (en) * 2008-02-05 2011-08-02 Dell Products L.P. Processor performance state optimization
KR101832821B1 (ko) * 2012-09-10 2018-02-27 삼성전자주식회사 동적 전압 주파수 스케일링 방법, 어플리케이션 프로세서 및 이를 구비하는 모바일 기기
US11073894B2 (en) * 2019-05-24 2021-07-27 Qualcomm Incorporated System power management for peripheral component interconnect express (PCIE)-based devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1171159A (zh) * 1994-12-23 1998-01-21 英特尔公司 具有减少功率操作特性的高速缓存一致性多道处理计算机系统
US5953741A (en) * 1996-11-27 1999-09-14 Vlsi Technology, Inc. Stack cache for stack-based processor and method thereof
WO2000002118A1 (en) * 1998-07-02 2000-01-13 Hitachi, Ltd. Microprocessor

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US565679A (en) 1896-08-11 William glanzer
US670496A (en) 1900-10-20 1901-03-26 Eureka Shoe Company Hand tacking tool.
US4171539A (en) * 1977-12-19 1979-10-16 The Bendix Corporation Power strobed digital computer system
US4203153A (en) * 1978-04-12 1980-05-13 Diebold, Incorporated Circuit for reducing power consumption in battery operated microprocessor based systems
US5497497A (en) * 1989-11-03 1996-03-05 Compaq Computer Corp. Method and apparatus for resetting multiple processors using a common ROM
US5251320A (en) * 1990-05-25 1993-10-05 International Business Machines Corporation Power controller for permitting multiple processors to power up shared input/output devices and inhibit power down until all processors have ceased service with the I/O devices
US5452401A (en) * 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US6116768A (en) 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US6026484A (en) 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority
US5517649A (en) * 1994-04-19 1996-05-14 Maxtor Corporation Adaptive power management for hard disk drives
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US5983340A (en) 1995-12-07 1999-11-09 Conexant Systems, Inc. Microprocessor system with flexible instruction controlled by prior instruction
EP0976030B1 (en) 1996-01-24 2008-07-02 Sun Microsystems, Inc. Instruction folding for a stack-based machine
US5991863A (en) 1996-08-30 1999-11-23 Texas Instruments Incorporated Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor
US6009505A (en) 1996-12-02 1999-12-28 Compaq Computer Corp. System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot
US6330659B1 (en) * 1997-11-06 2001-12-11 Iready Corporation Hardware accelerator for an object-oriented programming language
DE19749068B4 (de) * 1997-11-06 2005-03-10 Bosch Gmbh Robert Verfahren und Vorrichtung zur Überwachung eines Rechnersystems bestehend aus wenigstens zwei Prozessoren
US6035408A (en) * 1998-01-06 2000-03-07 Magnex Corp. Portable computer with dual switchable processors for selectable power consumption
US6240521B1 (en) * 1998-09-10 2001-05-29 International Business Machines Corp. Sleep mode transition between processors sharing an instruction set and an address space
JP2000194668A (ja) * 1998-12-25 2000-07-14 Toshiba Corp 計算機システム及び同システムに適用される中間コ―ド実行装置並びに中間コ―ド実行方法
US6341354B1 (en) * 1999-04-16 2002-01-22 Smartpower Corporation Energy-conserving computer accessible remotely and instantaneously by providing keep-alive power to memory
US6425086B1 (en) * 1999-04-30 2002-07-23 Intel Corporation Method and apparatus for dynamic power control of a low power processor
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1171159A (zh) * 1994-12-23 1998-01-21 英特尔公司 具有减少功率操作特性的高速缓存一致性多道处理计算机系统
US5953741A (en) * 1996-11-27 1999-09-14 Vlsi Technology, Inc. Stack cache for stack-based processor and method thereof
WO2000002118A1 (en) * 1998-07-02 2000-01-13 Hitachi, Ltd. Microprocessor

Also Published As

Publication number Publication date
ATE528708T1 (de) 2011-10-15
EP1368729B1 (en) 2011-10-12
WO2002017064A2 (en) 2002-02-28
JP2004507814A (ja) 2004-03-11
EP1368729A2 (en) 2003-12-10
WO2002017064A3 (en) 2003-10-09
CN1478224A (zh) 2004-02-25
KR20020085883A (ko) 2002-11-16
US6766460B1 (en) 2004-07-20

Similar Documents

Publication Publication Date Title
CN100437433C (zh) Java加速器环境中功率管理的系统和方法
US7051219B2 (en) System and apparatus for adjusting a clock speed based on a comparison between a time required for a scheduler function to be completed and a time required for an execution condition to be satisfied
US7237128B2 (en) Method and apparatus to dynamically change an operating frequency and operating voltage of an electronic device
JP3520611B2 (ja) プロセッサの制御方法
US20160103473A1 (en) Power control device for processor
CN103348323B (zh) 用于在计算机系统中执行目标程序的方法和系统
US7930443B1 (en) Router having routing engine software instance and interface controller software instance on a single processor
CN1054496A (zh) 便携式计算机实时的功率储存
CN1443319A (zh) 处理器控制电压的系统中提供决定开启电压的方法及装置
KR910000363B1 (ko) 단일 칩 프로세서
CN103150288A (zh) 一种快速开机的soc芯片及其实现方法
US20020188828A1 (en) Low power consumption super scalar processor
US8127161B2 (en) Data processing apparatus
JP4370109B2 (ja) プロセッサの電力制御方法
JPS63172345A (ja) スイツチデ−タ入力装置
CA2469451A1 (en) Method and apparatus to use task priority to scale processor performance
CN1588324A (zh) 基于控制系统实现在线更新数据的方法
JP2003140787A (ja) 電力制御装置及び方法並びに電力制御プログラム
JP2002207530A (ja) クロック供給回路
CN1645293A (zh) 电源管理的频率电压装置及频率电压控制的方法
CN114296800A (zh) 一种cpu中灵活设置指令间延迟时间的电路及方法
TWI475371B (zh) 電子裝置與其電源管理方法
CN116868168A (zh) 一种加速器的运行方法及装置
JPH1153224A (ja) ウォッチドッグタイマ及びマイクロコンピュータ
JP2004038376A (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
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: ROYAL PHILIPS ELECTRONICS CO., LTD.

Effective date: 20070831

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20070831

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklike Philips Electronics N. V.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: III HOLDINGS 6, LLC

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20150909

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150909

Address after: Delaware

Patentee after: III Holding 6 limited liability company

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081126

Termination date: 20180817

CF01 Termination of patent right due to non-payment of annual fee