CN100407102C - 基于软件的微处理器功率损耗控制 - Google Patents

基于软件的微处理器功率损耗控制 Download PDF

Info

Publication number
CN100407102C
CN100407102C CN2003801051091A CN200380105109A CN100407102C CN 100407102 C CN100407102 C CN 100407102C CN 2003801051091 A CN2003801051091 A CN 2003801051091A CN 200380105109 A CN200380105109 A CN 200380105109A CN 100407102 C CN100407102 C CN 100407102C
Authority
CN
China
Prior art keywords
power control
register
power
processor
registers
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
Application number
CN2003801051091A
Other languages
English (en)
Other versions
CN1720495A (zh
Inventor
A·特雷奇科
M·加格
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.)
Ams Osram International GmbH
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 CN1720495A publication Critical patent/CN1720495A/zh
Application granted granted Critical
Publication of CN100407102C publication Critical patent/CN100407102C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • 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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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

在由处理器(14)执行的程序期间,一种利用功率控制指令(90)执行程序代码的方法以及生成程序代码的方法的电路布置,所述的控制指令(90)能够动态地控制多个硬件资源(50-60)的功率损耗。此外,处理器(14)被设置为处理这样功率控制指令(90),该控制指令(90)能够将多个硬件资源(50-60)的功率模式保持为之前处理的功率控制指令(90)中所指定的模式,这样,当多个硬件资源(50-60)的功率模式被设置为之前处理的功率控制指令(90)指定的功率模式的时候,处理随后处理的指令(90)。

Description

基于软件的微处理器功率损耗控制
技术领域
本发明通常涉及集成电路中的功率损耗控制,例如,应用于低功率和其它对功率敏感的应用。
背景技术
对许多集成电路(IC)或芯片来讲,功率损耗往往是首要的设计约束条件。例如,集成电路越来越常在各式各样的便推式及其它靠电池供电的的应用中使用,例如在移动电话和其它无线通信装置、便携式计算机、手持设备和游戏控制台等等。此外,即使在非可移植的对电池寿命不关心的应用中,集成电路也可能对过热敏感,其结果是或者需要昂贵的和/或庞大的冷却组件,或者降低了集成电路可靠性。由IC所消耗的功率的量在电子器件的电池寿命和发热性这两个方面扮演了重要的角色。
此外,因为IC变得更加复杂,具体表现为更快的时钟频率和更大量的晶体管,相应增加由这些IC消耗的功率的量。因此,一项重要的研发计划已经开始针对降低IC的功率损耗进行。
一些已经有针对性的研究计划,例如,减少IC中的各个晶体管的功率损耗,例如,通过改变晶体管布局和/或减少供电电压。在某种程度上,对晶体管的设计进行修改和对功率电压电平的降低了已经对功率损耗中的增加进行了补偿,这是由于使用了更加复杂和更高性能的IC而导致的。然而,对很多功率敏感应用来说,需要进行其它精简。
例如一些IC,诸如在移动式应用中使用的微处理器,利用电压和/或频率标准变化来减少供电电压和/或时钟频率,从而减少总的功率损耗。然而,这种精简一般应用于宽IC(IC-wide),并且伴随有在处理性能方面的相应精简。
其它设计可以包括睡眠模式,该睡眠模式响应一个特定的命令或指令,或诸如外部中断的事件,使IC处于低功率状态。例如,一些微处理器支持的WAIT或HALT指令,它们将整个微处理器设置在一个低功率的睡眠模式。然而,当处于这种模式的时候,在微处理器中所有的有效处理活动一般都暂停,直到通过中断或其它触发事件再次将微处理器唤醒。
在另外的设计中,IC可能具有不同的电路,这些电路能够在它们没有被使用的时候可选择地被禁止,从而减少总的功率损耗。通常,这种电路可以响应特定指令的执行,有选择地被启动或禁止,所述的指令是针对相关的计算机程序的执行,特别是对于包括某种处理器或处理核心形式的IC。
例如,一些低功率微处理器设计允许通过路由特定的“掉电”指令到各个功能单元,这些专用功能单元可以有选择地被禁止。在计算机程序的编译期间,通过编译器插入掉电指令,这样在由微处理器执行的计算机程序执行期间,将通过各个功能单元处理指令。然而,这样一个方法的缺点是,将各个指令发送到特定的功能单元占用了该功能单元的处理资源,因此降低了该功能单元的可用性,以及其它处理器流水线的可用性,以便处理其它的产生的计算操作。
与上述掉电指令有关的是使用了控制位,控制位与通过微处理器处理每个指令关联,并且动态地控制微处理器中的每个功能单元的状态的启动。然而,在这类设计中,需要对每个指令的常数指令进行解码,可以对通过有选择地禁止各个功能单元获得的一些功率损耗减少进行补偿。此外,响应一个控制位的特定的组,禁止或启动一个特定的功能单元所需要的时间可以限制微处理器的合理的工作频率,从而限制微处理器的综合性能。此外,对每个指令的控制位的增加加大了代码的尺寸,因此增加了存储需求,或降低了所支持的不同的指令的数量。
上述基于控制方案的指令的另一个缺点是,它们经常局限于对微处理器中的功能单元进行控制。当功能单元,如执行单元、运算逻辑单元、浮点单元、定点单元等等时,可以对微处理器中的总体功率损耗提供有效的作用,大多数的设计包括大量的附加电路,例如,缓存、寄存器堆等等,还影响到功率损耗,但是不由上述控制方案阐明。
其它的设计可以包括多个指令集,这些指令组支持微处理器的不同功率操作。通常,在这样的设计中,一个指令集可以完全使用一个微处理器,因此另一个指令集可以仅仅使用微处理器的一部分,因此减少了功率消耗。然而,这个方法的一个缺点是,仅仅例如完全或有限地支持有限的处理器应用模式。此外,增加了代码的复杂性、和由此而导致的处理器中的解码逻辑的复杂性,这又能增加功率损耗。
在相关领域的发展中,可以利用程序的多个版本支持不同的功率损耗能力。然而,存储程序的多个版本需要使用运行时调度程序,该调度程序根据当前的功率需要选择用于执行的代码版本,并且存储多个代码版本需要更多的程序存储器和调度程序的执行,这可进一步导致功率损耗。
对于在IC中有选择地启动各个电路,可以使用禁止这些电路的各种的方式,从而最小化它们的功率消耗。例如,经常使用时钟选通器禁止电路的时钟,有效地限制电路中晶体管的切换,因为在晶体管中经常进行状态切换占了电路中功率损耗的最大部分。
对于微处理器中的功能单元,禁止的另一个方式是停止对电路的功率供应。另一个方式是使电路的输入信号无效。
同时,对于其它的电路,比如在动态随机存取存储器(DRAM)装置中使用的存储器阵列,可以有选择地断开时钟信号和读出放大器,以禁止阵列中的储存单元的存储体,从而减少整个阵列中的功率损耗。
尽管已经产生了与例如微处理器等的IC中的控制功率损耗相关的显著增益,但是在本领域,仍然需要继续进一步完善本领域。
例如,在IC中的有选择地禁止电路的程序控制的方面,仍然需要有有选择地禁止电路方式,该禁止电路与由传统的电路控制方案支持的电路相比,具有更大的粒度和灵活性,以及更少开销。
发明内容
本发明将对这些及其它的现有技术有关的问题进行阐述,这是通过提供电路方案、利用功率控制指令的执行程序代码的方法和生成程序代码的方法来完成的,在处理器执行程序期间,功率控制指令能够动态地控制多个硬件资源的功率损耗。此外,被设置为处理这种功率控制指令的处理器控能够将多个硬件资源的功率模式保持在以前处理的功率控制指令指定的状态,这样,在将多个硬件资源的功率模式设置为由以前处理的功率控制指令指定的状态时,将处理后续要处理的指令。
附图说明
本发明的这些及其它优点和特征,将在所附的权利要求中阐述并且作为在本文中的进一部分。然而,为了更好的理解本发明,应该参考附图,和相关的描述的内容,通过使用它获得的优点和目的,在这里本发明还描述了典型实施例。
图1是按照本发明的一个媒体处理器的方框图,该媒体处理器包括动态的功率损耗控制电路。
图2是涉及图1中的中央处理器的方框图,包括一个按照本发明的动态的功率损耗控制电路。
图3是涉及图2中的寄存器堆的方框图,包括用于有选择地禁止寄存器的存储体的启动逻辑。
图4是用于一个功率控制指令的典型的指令格式的方框图,该功率控制指令适用于控制图1的媒体处理器中的功率损耗。
图5是说明按照本发明的功率损耗优化例程的程序流程的流程图。
图6是说明由图1的媒体处理器处理的典型的程序的方框图。
图7是针对图2所示的寄存器堆中控制功率损耗的另一个方式的方框图。
具体实施方式
按照本发明的动态功率损耗控制可以包括两个概念中的一个或两个,这两个概念提供了比传统的功率损耗控制技术多很多的优点。第一个概念只能应用于对由一个由处理器或处理芯使用的寄存器堆进行功率损耗控制。按照本发明,将寄存器堆分割为多个寄存器的存储体,寄存器的每个存储体包括时钟、数据和地址输入线。启动逻辑连接到这样的寄存器堆,以便为在寄存器堆中未使用的寄存器的存储体,有选择地断开或禁止时钟、数据和地址输入线。
第二个概念更广泛地应用在集成电路中控制功率损耗的基于软件的方式中,所述的集成电路包括一个处理器或其它的处理软件指令的可编程电路。特别是,与由处理器执行的程序代码组合的功率控制指令,用于控制多个硬件资源的功率模式,也就是有选择地被设置为两个或更多功率模式,每个硬件资源模式对于硬件资源具有一个特定的功率消耗状态。
每个功率控制指令包括在操作数中处理的功率控制信息,该功率控制信息能够设置多个硬件资源的功率模式。此外,一旦由特定的功率控制指令设置了功率模式,所设置的功率模式在后继指令的处理期间由处理器使用,例如,在由另一个功率控制指令、或一个特殊事件(例如外部中断)重新设置功率模式之前。
每个概念都将结合处理器集成电路的典型实施例的说明更加详细的被描述,该处理器集成电路使用了寄存器堆的基于软件的功率损耗控制。然而,在讨论这些特定的实施例以前,下面详细描述一下典型的硬件和软件环境。
参看附图,其中在几个图中,相同的数字表示相同的部分,图1示出了数据处理系统10的典型的硬件和软件环境,包括一个实现按照本发明的动态功率损耗控制的媒体处理器12。例如,媒体处理器12可以被实现为可从PhilipsSemiconductors中获得的PNX1300系列TriMedia兼容的媒体处理器,或例如Equator MAP1000、TITMS320C6xxx、BOPS ManArray等等的其它媒体处理器体系结构。媒体处理器12是一个系统芯片内(SOC)集成电路装置,该装置包括一个通过内部总线16连接到多个合并到相同集成电路装置中的附加电路组件的中央处理器(CPU)或处理核14。
例如,CPU14可以实现为例如VLIW处理器芯,例如包括32位地址空间,和包括128个32位的通用寄存器的寄存器堆。处理器核包括可通过五个发行时隙访问的27个功能单元、以及16KB数据和32KB指令高速缓存,所述功能单元具有双端口的数据高速缓存,并具有两个与64字节块大小相关的8路线组的高速缓存。
当外部总线接口块24实现由外围总线22(例如PCI总线)到外部的外围组件的连接性时,由通过主存储器输入/输出接口块20访问的外存储器18(例如SDRAM存储器)提供处理器12的工作存储器。
为了支持各种不同的媒体处理功能,媒体处理器12包括各种特定的媒体处理电路,包括视频输入/输出块26、28;音频输入/输出块30、32;SPDIF输出信息组34;I2C接口块36;同步的串行接口块38;图像协处理器块40;DVD反倒频器(DVDD)块42;可变长度解码(VLD)协处理器块44;和计时器块46。
现在转到图2,CPU14进行详细说明,如图所示,包括总线接口单元组件(BIU)50将内部总线16连接到指令高速缓存52和数据高速缓存54。将来自指令高速缓存52的指令提供给一个或多个指令译码器56,将指令输出到一个或多个功能单元58,例如各种的运算逻辑单元、浮点单元、子字并行多媒体操作组件、负载/存储单元、SIMD多媒体操作组件、矢量多媒体操作单元组件、乘法器、分支单元等等。如上所述,CPU14可以支援VLIW指令,从而当处理VLIW指令时可以使用多指令时隙(例如五个),以便同时路由被编码成为VLIW指令的多重操作到多功能组件。
CPU14通常作为一个加载/存储体系结构被实现,由此功能单元58访问包括128个32位通用寄存器的寄存器堆60。附加支持的寄存器是程序控制和状态字(PCSW)寄存器61,该寄存器用来设置CPU的各种结构配置,例如,关于浮点操作、字节性别(byte sex)(高/低端在前格式)、中断启动、异常等等。为了提供按照发明的动态功率损耗控制,CPU14还包括功率控制电路62,其中描述了一个支持寄存器64,在此称为功率模式寄存器,其中存储了媒体处理器12中各种硬件资源的功率模式状态信息,这些资源能够有选择地被禁止,以便最小化在媒体处理器中的功率损耗。在一些实现中,可能希望同时支持在PCSW中的功率模式状态信息的存储或在CPU中的另一个支持寄存器,从而功率模式状态信息与其它独立于功率损耗控制的状态信息结合损耗。
功率控制电路62控制整个CPU14的功率损耗,在媒体处理器12以外的地方是可选的,控制是通过确定一个或多个启动信号66,以启动嵌入在CPU14和/或媒体处理器12中的各种的硬件资源中的逻辑。在本文中,实际上硬件资源可以代表集成电路中的任何可以实际上和/或希望禁止的电子电路,所述的禁止是为了减少集成电路中的功率损耗。在CPU14中,例如BIU50、高速缓存52、54、指令译码器56、功能单元58和寄存器堆60都作为能够有选择地被禁止的硬件资源,根据每个相应块上存在的启动逻辑(通过参考标记″E″标志)来进行说明。
在示出的实施例中,响应存储在功率模式寄存器64中的功率模式状态信息,功率控制电路62有选择地确定启动信号66。在寄存器64中设置这些状态信息,以响应嵌入到由CPU14执行的程序中的功率控制指令。这些功率控制指令通常由指令译码器56解码,并且用于以几乎与其它的传统的现有技术中使用的普通的寄存器存储指令相同的方式更新功率模式寄存器64。
应当理解的是,启动信号66可以用来完全地启动/禁止整个块或硬件资源,也可以用来仅启动/禁止这些块/资源的一部分,和/或从这样的块/资源的全部或一部分的多个有效的功率消耗状态中选择。例如,硬件资源可以支持多于两个的功率模式,例如,睡眠或完全关闭模式、两个或更多低功率或节能模式、和满功率模式。在图2中,虽然为每个启动信号66示出了一个线,应当理解的是,可以使用多个信号通路,用不同程度的粒度有选择地启动每个硬件资源部分。同时,应当理解,损耗硬件资源可实际地使用任何在本领域中已知的节能或功率消耗减少技术,只要这样的技术能够有选择地在这里描述的功率控制电路的控制下启动。
在以下论述的实施例中,例如,可以控制诸如寄存器堆的硬件资源,以便通过将寄存器堆组织成为多个寄存器存储体而减少功率损耗,这些寄存器存储体可以相应地通过响应处理器执行的程序中的功率控制指令有选择地被禁止。在这点上,可以将每个寄存器存储体本身认为是代表一个单独的硬件资源。
在被说明的实施例中,每个寄存器组使用启动逻辑,启动逻辑不但断开时钟信号,而且断开到每个被禁止的寄存器存储体的地址和数据输入。这点在下面将变得更明显,因为与通用寄存器有关而使用的CMOS锁存器或触发器通常受到更高布线能力的影响,一起断开时钟、地址和数据输入信号通常能够提供最好的节能效果。然而,在按照本发明的一些实施例中,也可以使用禁止寄存器堆的其它方式。
此外,当功率控制电路62在CPU14中用来控制硬件资源单独处理时,应当理解,按照本发明,可以使用功率控制电路控制其它的硬件资源,包括例如在相同集成电路的其它地方处理的资源(例如,在图1所示的所有功能块的全部或部分),以及在另一个集成电路上处理的硬件资源。按照本发明的功率控制电路可以用来控制功率损耗,事实上,与多种硬件资源有关,包括例如寄存器堆、存储器、高速缓存、协议时隙、总线、功能单元、功能块、10pads或插脚、缓冲器、指令排序逻辑、嵌入式字段可编程门阵列(FPGA)、协处理器或几乎所有类型的电子电路,它们能够被禁止和/或能够设置为一种具有减少功率损耗级的状态。此外,可以认为上述任意电路包括多个可单独可控的硬件资源,例如,这样的电路的各个部分可以有选择地被禁止(例如,寄存器堆中的各个存储体或寄存器、高速缓存的各个集合、总线中的各个线路或线路组等等)。
此外,当示出的功率控制电路62在CPU14中被处理时,应当理解,从功能上可以将功率控制电路单独从CPU或其它的处理核分离出来。通常,在不同的实施例中,在集成电路上分配功率损耗控制功能的特定方式可以不同,因而,本发明不仅限于在此论述的特定的执行过程。
作为附加内容,在此处举例来提供媒体处理器中的功率控制电路62的实现。功率损耗控制,特别是,以下描述的功率控制指令的用途,可在按照本发明可以在多种集成电路中广泛地使用。例如,与各种处理器结构有关的功率控制指令都可以使用,包括VLIW、EPIC、RISC、CISC、DSP、超标量等等。此外,本发明不仅限于在SOC结构或与其它支持电路集成的处理核的其他结构中使用。
在许多情况下,因功率损耗降低得到的显著优势是通过VLIW、EPIC超标量或其它的宽协议结构而实现的,在这些结构中,在程序执行期间一直并行硬件资源利用不足,,因为时常利用不足的并行硬件资源,按照程序应用需求,可以有选择地被禁止。然而,本发明不仅限适用于宽-协议结构等等。
通常,应当理解在此讨论的任何基于硬件的功能都能在一个电路布置中结合一个或多个集成电路实现,并且选择性地包括附加的支持电子组件。此外,如本领域公知的技术那样,通常利用一个或多个在此成为硬件定义程序的计算机数据文件设计和制造集成电路,在此计算机数据文件定义了装置上的电路布置的布局。通常通过设计工具产生程序,随后在制造期间用来创建布局模板,该设计屏蔽定义了应用于半导体片的电路布置。通常,利用例如VHDL、verilog、EDIF等等硬件定义语言(HDL)以预先确定的格式提供程序。本发明将在下文的电路布置中,以将全部功能集成在一起的电路和使用该电路的数据处理系统中实现,,本领域的普通技术人员应当理解,按照本发明的电路布置还能够以各种形式的程序产品的形式分发,本发明的应用是相同的,与实际上执行分发的特定类型的信号媒体无关。信号承载媒体的例子包括但是不仅限于可记录类型的媒体,尤其例如易失和非易失性存储器装置、软盘及其它活动磁盘、硬盘驱动器、磁带、光盘(例如,CDROM、DVD等等),和传送类型媒体,例如数字和模拟通信链接。在按照本发明的一些实施例中,其它的集成电路技术,例如FPGA等等也可以用来实现一些在此讨论的基于硬件的功能。
如上所述,可以通过嵌入在由CPU14执行的程序中的功率控制指令控制功率控制电路62。这些功率控制指令可以由程序设计器产生,或可以通过编译器、连接程序、佳化器等等以自动方式被增加到程序中。此外,这样自动附加程序控制指令通常发生在运行时之前,在一些实施例中,可以使用程序控制指令的运行时附加,例如关于准时编译/优化或运行时解释/指令译码。
与特定方式的实现无关(即,在运行时之前或在运行时期间、在编译器或佳化器中等等),程序控制指令的自动附加通常利用一个或多个将在下面进行详细说明的例程而实现。这些例程,无论是否是在操作系统或在特定的应用程序、组件、程序、对象、模块或指令序列乃至它们的子集中实现,在此都成为″计算机程序代码″或简单地为″程序代码″。程序代码通常包括一个或多个在不同时间驻留在计算机或数据处理系统中的各种存储器和存储设备中的指令,当通过计算机中的一个或多个处理器读取和执行的时候,使计算机执行体现本发明不同特征的执行步骤或单元所必需的步骤。此外,与本发明基于软件的方面和计算机和数据处理系统将在下文描述,对本领域的技术人员来讲,应当理解本发明的不同实施例都能够以各种程序产品的形式分发,本发明的应用是同样地,与实际上执行分发信号承载媒体的特定类型无关。
此外,可以基于本发明的特定实施例中实现的应用确定以下描述的不同程序代码。然而,应当理解的是,下述任意特定程序术语仅仅是为了方便而使用,本发明不仅限于由这些术语标识和/或表示的特定的应用。此外,通常给出的循环编号的方式,其中计算机程序可以组织成例程、程序、方法、模块、对象等等,而且不同的方式中的程序功能可以被分配在不同的软件层中,也就是说驻留在一般的计算机(例如操作系统、库、API、应用程序、小应用程序等等)中,应当理解,本发明不仅限于在此描述的程序的特定的组织和分配。
本领域的普通技术人员应当认识到本发明不仅限于图1和2所示的典型的环境。实际上,本领域的普通技术人员应当理解,在不脱离本发明的范围的情况下,可以选择使用其它的硬件和/或软件环境。
如上所述,按照本发明的动态功率损耗控制可以包括两个概念中的一个或两个,这两个概念提供了优于传统的功率损耗控制技术的实质性优点。第一个概念专门应用于,实现对一个由处理器或处理核使用的寄存器堆进行功率损耗控制。第二概念更广泛地应用在集成电路中用软件控制方式控制功率损耗。为了便于更透彻地理解这些概念中的每一个,下面连同图3-6对结合两个概念对典型的实施例进行说明。然而应当理解,以下讨论的两个概念可以分别地和独立地在其它的实施例中使用,本发明不仅限于以下讨论的特定的执行过程。
特别地,在图3-6对在TriMdeia兼容的媒体处理器中使用的寄存器堆中对功率损耗的基于软件的控制进行说明。已经发现,例如,在许多可编程结构(例如VLIW、EPIC、和超标量)中,寄存器堆占整个功率消耗的很大部分。在一些应用中,已经发现寄存器堆可以达到处理核功率消耗的20%。特别是在媒体处理器中,寄存器堆通常比较大,并通常包括许多端口和寄存器。一些TriMdeia兼容处理器,例如利用具有128个寄存器和20个单独端口的寄存器堆。寄存器堆设计主要是配线,所以相对功率损耗随技术规模而增加。因而,减少寄存器堆中的功率损耗通常导致大量节省媒体处理器中的能量耗费。
已经发现在任何可编程结构中的寄存器堆的大小通常由应用程序确定,该应用程序需要很高的活性变量,其通常存储在寄存器堆中。然而,当执行只需要较少活性变量的其它应用程序时,寄存器堆中的许多寄存器仍然未被使用。此外,在特定的应用程序中,在应用程序中寄存器堆的应用可以在不同的点完全不同。举例来说,已经发现在AC3解码期间,TriMdeia兼容的媒体处理器具有比较高峰值的寄存器利用率,而在一般的应用程序中的其它操作的性能期间,平均寄存器利用率通常相对较低。从而,人们相信,依靠运行应用程序的当前需求,也许非常希望禁止未使用的寄存器堆部分,以便减少它的整体功率损耗。
如图3具体所示,有选择地禁止寄存器堆的一部分的一个方式是通过沿着地址空间将寄存器堆(这里图2的寄存器堆60)分割成为几个存储体70,然后有条件地启动或禁止这些存储体,例如通过功率控制电路62(图2)响应提供给存储体的启动信号66。
每个存储体70可以包括多个寄存器,因此由寄存器堆代表的寄存器空间被分割成为寄存器存储体。例如,对于包括128个寄存器的寄存器堆,也许希望将寄存器空间分割成为每16个寄存器的八个存储体。也可以使用其它的分割寄存器方式,举例来说,也许希望利用最高有效地址输入作为存储体选择信号,并且利用最低有效地址输入从被选择的存储体中选择一个特定的寄存器。例如,寄存器堆被分割成为16寄存器的八个存储体,可以使用七个地址输入,用三个高位输入作为存储体选择信号,四个低位输入作为寄存器选择信号。
作为本领域的公知常识,寄存器堆60包括输出选择逻辑72,和不同的输入,例如时钟输入74、地址输入76和数据输入78。此外,寄存器堆60通过数据输出80输出数据。应当理解,根据由寄存器堆支持的输入/输出端的数量,以及寄存器的数量和每个寄存器的宽度,可以将各种不同的地址输入、数据输入和数据输出信号提供给寄存器堆。此外,还可以通过多个功能单元使用输入选择逻辑(未示出)来支持多个寄存器的并行访问。
为了有选择地禁止寄存器的存储体,通过在每个存储体中处理的启动电路82将时钟、地址输入、输入数据提供给每个存储体。此外,将来自功率控制电路的启动信号66附加地供应给每个启动电路82,以便有选择地为相关的寄存器存储体70断开或保护时钟、地址输入和数据输入。
按照本发明,可以以许多方式实现每个存储体中的启动电路82。例如,一个实现启动电路的方式是通过使用一系列选通晶体管,用一个这样的连接每个时钟、地址输入和数据输入的晶体管到寄存器存储体,并且由寄存器存储体各个的启动信号66选通。
通过断开到每个存储体的地址和数据输入,而不仅仅是时钟输入,通常获得了由于与CMOS锁存器或触发器(合成的)寄存器执行过程有关的相对高的电线电容相对更大的节能效果,因为选通通常在寄存器堆存储体中使用相对长的电线上抑制切换活动。然而应当理解,在一些实现中,附加的选通逻辑可能引入附加的延迟,从而在较小的范围抑制性能。此外,应当理解,本发明可以利用不同的寄存器实现方式与被实现的寄存器堆结合使用。
为了实现对寄存器堆60的基于软件的功率损耗控制,在CPU14的指令集结构中支持功率控制指令。图4中的90说明了一种用于功率控制指令的典型格式。如图所示,功率控制指令90可以包括将指令确定为pwr_control指令的操作码92,和指定功率控制信息的操作码94,用于对寄存器堆60中的各种寄存器存储体设置功率模式。操作码94可以被实现为,例如一个包括一个位屏蔽的立即操作数,位屏蔽包括分配给寄存器堆中的每个寄存器的存储体的启动/中止位96。从而,例如对于寄存器堆中的八个存储体,指令90中可以支持八位立即操作数。
在更一般水平,可以用下述公式表示操作数94的大小:
Σ i = 1 j log 2 ( Modes ( i ) )
其中j是将被控制的硬件资源(这里为寄存器存储体)的数量,Modes(i)是硬件资源i的功率模式的数量。
在其它方案中可以使用其它的指令格式。例如,如图4所示,可能希望支持任意标识一个寄存器的源寄存器操作数97,在该寄存器中,功率模式状态信息已经被存储。从而,并不是直接将功率模式状态信息存储在功率控制指令中并且执行立即操作,而是可以用寄存器操作将功率模式状态信息存储在单独的寄存器中,该寄存器操作用于检索期望的功率模式状态信息。在其它方案中可以支持其它的编址方式。
如图4所示,可能还希望支持保护操作数98,该操作数可以用来指定,在提供由应用的功率控制指令指定的该功率模式状态信息之前必须满足的情况。按照本发明,实际上可以使用任意已知条件。
回到图2,在对实施例的说明中,通过CPU14处理功率控制指令,以便用功率控制指令中指定的功率控制信息更新功率模式寄存器64。这样,可能希望功率模式寄存器64具有与功率控制指令的立即操作数相同的映射,因此可以简单地将功率控制指令作为直接写入功率模式寄存器那样处理。
此外,如上所述,在有些情况下也许希望利用之前存在的寄存器,例如PCSW寄存器来存储功率模式状态信息。在这样的情况,功率控制指令不需要单独的操作码。反之,用于向适当的寄存器写入的先前存在的操作码可以与更新那些与存储功率模式状态信息一同使用的位的操作数一起使用。
按照本发明,功率控制指令可以以许多方式与可执行程序代码结合。例如,可以在研发期间由程序设计器将功率控制指令增加到源代码。在另一个方案中,编译器、优化器、连接程序等等,可以执行正在研发中的程序的模拟或静态分析,以便确定适当的位置,用于基于预测的资源利用率插入功率控制指令。
此外,配置、静态分析或程序的模拟可以用来确定在某些程序段间应该使用哪个硬件资源,以及哪个资源应该禁止。例如,如果确定某个程序段只需要10个寄存器,但是使用哪10个寄存器对程序语义不重要,也许编译器希望使用仅来自寄存器存储体的寄存器,然后将适当的功率控制指令插入到程序代码里,以便禁止未使用的寄存器存储体。此外,如果那10个寄存器最初分散在几个寄存器存储体中,也许所希望将寄存器重新映射,以便将寄存器集中在有限数量的寄存器存储体中。
例如,图5示出了可以在计算机程序的编译或优化期间执行的功率损耗优化例程100,以便为最佳的功率损耗佳化一个计算机程序段。针对每个指定的程序段,例程100首先分析该段,以便通过块102中的程序代码段确定硬件资源用途。接下来,选择性地执行块104,以便试图重新映射资源,从而将资源使用集中到硬件资源的有限集(例如,将寄存器限制到有限数量的寄存器存储体)。接下来,块106产生适当的功率控制指令,并且将该适当的功率控制指令插入到程序代码里,以便禁止任意未用资源。然后完成对该段的处理。
可以在运行时期间例如连同解释或准时编译使用例程100,或与其在功能上相似的例程。此外,应当理解例程100可以与指令的产生相结合使用,指令在运行时期间被调度,以便并行和/或无序操作,例如,在超级标量处理器结构中。在这样的执行过程中,编译器和运行时硬件希望限制功率控制指令的重新排序,以便最小化对其它推测指令的影响,例如,通过将边界效应分配给限制它的运行时推测的功率控制指令。在其它的实施例中,如果CPU/处理器没有完全地被计算负载,操作系统可以调度/发出功率控制指令。
在另一个方案中,例程100可以与明确地并行于例如VLIW或EPIC代码的指令集结构结合使用,其中在编译期间检测出现的并行指令。在这样的实现中,认为功率控制指令的插入可以包括将功率控制操作插入到包括多重操作的大VLIW或EPIC指令里。
程序代码希望包括程序控制指令,在编译期间或在运行时期间已经将功率控制指令嵌入到所述的程序代码,所述的程序控制指令散布在程序代码中,此时希望在硬件资源利用率方面发生变化。此外,通常希望一个功率控制指令就能够控制多个硬件资源的启动/禁止状态。因此,最小附加处理的开销通常与按照本发明的功率控制指令有关,从而将由于将附加指令插入到程序代码里而产生的任意相反的性能效果最小化。
例如,图6示意地所示以如所述的方式编译的典型程序段的执行,例如,就如与TriMdeia兼容的媒体处理器结合使用那样。在这个例子中,假定有五个发出时隙,被指定为110、112、114、116和118,在那个周期的相应的发出时隙的每个周期(周期0-4)期间,在每个发出时隙中执行指令。还假定寄存器堆包括分割成为八个存储体的128寄存器(表示为r0-r127),以及当在与存储体有关的操作数位屏蔽位置遇到二进制″1″的时候,功率控制指令在启动选择的存储体的位置使用立即操作数。在这个例子中,pwr control指令的延迟是一个周期;然而,应当理解,在一些执行过程中,pwr control指令可以具有大于一个周期的延迟。
在周期0期间假定,通过CPU(在发出时隙112中)处理的一个指令是一个具有0x1b(二进制00011011)的立即操作数的功率控制指令,其仅启动了寄存器堆(例如寄存器r0-r31和r48-r79)的存储体1、2、4和5。作为这些指令的执行结果,更新功率模式寄存器64(图2),以便存储0x1b(二进制00011011)值。结果,在后来的周期期间,禁止寄存器存储体3、6、7和8。然而注意,在周期0中的功率控制指令的执行期间,对于通过其它的指令访问来说,全部寄存器存储体都是可用的(假定全部存储体在以前已经启动)。
在周期1和2期间,没有遇到其它功率控制指令。结果,寄存器存储体3、6、7和8仍然是禁止的,限制全部指令访问来自存储体1、2、4和5(r0-r31和r48-r79)的寄存器。
在周期3期间,存储在功率模式寄存器64中的功率模式状态信息继续将寄存器存储体3、6、7和8保持在禁止状态。然而,在这个周期期间(向发出时隙118发出)执行的一个指令是功率控制指令,该功率控制指令具有一个0xff(二进制11111111)的立即操作数,它可以启动在周期4执行的指令的全部八个寄存器堆的存储体。
上述的动态功率损耗控制技术与传统的设计相比有许多优点。根据控制具有最小处理开销的多种硬件资源,同传统的设计相比较,提供了显著的灵活性,传统的设计需要指令被路由到特定的功能单元,或需要启动/禁止将被附加到每个指令的命令,并且被不断地解码。
此外,上述的技术提供了灵活性,以解决各种功率损耗相关的问题,从而以多种有效的方式适当地平衡了特性和功率损耗。例如,利用上述的技术,可以例如通过增加寄存器或功能单元来提升处理器性能,而不用增加对没有使用的额外的资源的代码的功率损耗。此外,对于性能不是很重要的应用,功率控制指令可以牺牲性能来降低功率消耗,例如为操作调度有限的资源,同时禁止其它的资源。
就基于软件的功率损耗控制而言,应当理解,按照本发明的其它的实施例中也可以使用其它的指令格式、其它的编译、优化和/或进度例程、和其它的处理器结构。此外,如上所述以外的资源禁止电路,以及在此说明的存储体寄存器堆设计可以与按照本发明的基于软件的功率损耗控制结合使用。
此外,就在此处说明的存储体寄存器堆设计而言,应当理解,按照本发明可以使用在此处说明的基于软件的控制机制的之外的其它控制机制。例如,基于硬件的控制机制可以用来动态地启动某些基于读取/写入地址的动态解码的硬件资源。举例来说,图7描述了另一个,与图3的寄存器堆60相似的寄存器堆设计120,包括多个寄存器存储体122,其每一个包括用于有选择地断开提供给寄存器堆的时钟输入126、输入数据输入128和输入地址输入130的选通逻辑124。然而,寄存器堆120没有来自基于控制电路的软件的启动信号,寄存器堆120包括基于硬件的启动逻辑电路132,包括用于动态产生各个存储体启动信号136的地址译码器134,该启动信号136用于有选择地禁止不同的未使用的寄存器存储体。
例如,在任意周期期间,地址译码器134可以有选择地禁止寄存器存储体,在这任意周期中,所述存储体中的寄存器不正在被访问。特别是支持多输入端口的寄存器堆,在给定周期期间很容易确定正在访问哪个寄存器,从而能够有选择地减少功率损耗,而在由特定的处理器设计使用的编译器和/或指令集结构中没有任何改变。
对本领域的普通技术人员来讲,在属于上述公开范围内的各种补充修改是显而易见的。因此,本发明限于以下附加权利要求中。

Claims (21)

1.一种电路装置,包括:(a)多个硬件资源,其中每个硬件资源具有一个在至少第一和第二功率消耗状态之间可设置的功率模式;(b)一个连接到所述多个硬件资源的处理器,所述处理器(14)被设置为处理程序代码,该程序代码包括至少一个功率控制指令(90),该指令(90)包括操作数,在该操作数中配置有功率控制信息,其中所述处理器(14)被设置为通过基于在功率控制指令中所配置的功率控制信息有选择地设置所述多个硬件资源当中的至少两个硬件资源(50-60)的功率模式来处理功率控制指令,并且其中所述处理器更进一步被设置为,当处理至少一个在程序代码中的后继指令时,将所述至少两个硬件资源的功率模式保持为功率控制指令中指定的模式;(c)一个支持寄存器,该支持寄存器存储所述多个硬件资源的功率模式状态信息;以及(d)连接到支持寄存器的启动逻辑,并且被设置为响应存储在支持寄存器中的功率模式状态信息,对所述多个硬件资源的功率模式进行控制,其中所述处理器(14)被设置为通过将来自功率控制指令的功率控制信息存储在支持寄存器中,有选择地设置所述至少两个硬件资源(50-60)的功率模式,
其中,所述多个硬件资源的子集包括定义寄存器堆(60)的多个寄存器存储体(70),其中启动逻辑(132)包括多个启动电路,每一个所述启动电路与所述多个寄存器存储体(70)中的一个寄存器存储体(122)关联,并且每一个所述启动电路被设置为响应启动信号(136)有选择地禁止它相关联的寄存器存储体,其中所述的启动逻辑更进一步被设置为根据存储在支持寄存器中的功率模式状态信息,为每个寄存器存储体产生启动信号。
2.如权利要求1的电路装置,其中所述的功率控制指令更进一步包括唯一标识功率控制指令的操作码(92)。
3.如权利要求1的电路装置,其中所述的支持寄存器包括功率模式寄存器(64)。
4.如权利要求1的电路装置,其中所述的支持寄存器包括独立于功率损耗控制的附加状态信息。
5.如权利要求1的电路装置,其中每个寄存器存储体(122)包括至少一个时钟输入(126)、地址输入(130)和数据输入(128),并且其中每个寄存器存储体的启动电路(136)被设置为响应提供的启动信号(66),有选择地断开它相关联的寄存器存储体的时钟(74)、地址和数据输入。
6.如权利要求1的电路装置,其中每个硬件资源都是从由寄存器堆(80)、寄存器存储体(70)、寄存器、高速缓存(52)、总线接口单元(50)、总线(16)、功能单元(58)、功能块、指令译码器(56)组成的组中选择出来的。
7.如权利要求1的电路装置,其中所述处理器被设置为处理明确并行指令,并且其中功率控制指令包括一个操作,所述一个操作是在明确并行指令中的多个操作中的一个。
8.如权利要求7的电路装置,其中所述的处理器是从由VLIW处理器和EPIC处理器组成的组中选择出来的。
9.如权利要求1的电路装置,其中所述的处理器包括超标量处理器。
10.如权利要求1的电路装置,其中所述的处理器被设置为将边界效应分配给功率控制指令,以便限制它的运行时推测。
11.如权利要求1的电路装置,其中操作数中的功率控制信息可以识别存储了所述至少两个硬件资源的功率模式状态信息的寄存器,并且其中所述的处理器被设置为通过从由操作数中的功率控制信息标识的寄存器检索功率模式状态信息,有选择地设置所述至少两个硬件资源的功率模式。
12.如权利要求1的电路装置,其中在所述处理器中配置所述多个硬件资源。
13.如权利要求1的电路装置,其中至少一个硬件资源被配置在所述处理器外,但与该处理器位于相同的集成电路中。
14.如权利要求1的电路装置,其中至少一个硬件资源被配置在与所述处理器分离的集成电路。
15.一种集成电路,包括权利要求1的电路装置。
16.一种在包括多个硬件资源类型的处理器上执行程序代码的方法,每个硬件资源具有一个可在至少第一和第二功率消耗状态之间设置的功率模式,所述的方法包括:(a)通过基于在功率控制指令的操作数中所配置的功率控制信息,有选择地设置所述多个硬件资源当中的至少两个硬件资源的功率模式,来处理来自程序代码的功率控制指令(100,102);以及(b)当所述至少两个硬件资源的功率模式被设置为由功率控制指令的功率控制信息指定的模式时,处理程序代码中至少一个后来的指令(104,106),其中
所述的处理器包括一个支持寄存器,该支持寄存器由所述处理器中的启动逻辑使用以用于设置所述多个硬件资源的功率模式,并且其中有选择地设置所述至少两个硬件资源的功率模式的步骤包括在支持寄存器中存储功率控制信息,以及
所述多个硬件资源的子集包括定义了寄存器堆的多个寄存器存储体,其中启动逻辑包括多个启动电路,每一个所述启动电路与所述多个寄存器存储体中的一个寄存器存储体关联,并且每一个所述启动电路被设置为响应启动信号,有选择地禁止与它相关联的寄存器存储体,所述的方法更进一步包括根据存储在支持寄存器中的功率模式状态信息,为每个寄存器存储体产生启动信号。
17.如权利要求16的方法,其中所述的功率控制指令更进一步包括唯一标识功率控制指令的操作码(92)。
18.如权利要求16的方法,更进一步包括,处理第一个后继指令之后,通过在支持寄存器中存储在操作数中配置的第二功率控制信息,来处理来自程序代码的第二个功率控制指令,从而改变第一硬件资源的功率模式,并且在处理第二功率控制指令之后处理第二后继指令,从而当将第一硬件资源的功率模式设置为第二功率控制指令中指定的功率模式时处理第二后继指令。
19.如权利要求16的方法,其中每个寄存器存储体包括至少一个时钟输入、地址输入和数据输入,并且其中每个寄存器存储体的启动电路被设置为响应提供的启动信号,为它相关联的寄存器存储体有选择地断开时钟、地址和数据输入。
20.如权利要求16的方法,其中每个硬件资源都是从由寄存器堆、寄存器存储体、寄存器、高速缓存、总线接口单元、总线、功能单元、功能块、指令译码器组成的组中选出来的。
21.如权利要求16的方法,其中所述处理器被设置为处理明确并行指令,其中所述的功率控制指令包括一个操作,所述一个操作是在明确并行指令中的多个操作中的一个。
CN2003801051091A 2002-12-04 2003-12-03 基于软件的微处理器功率损耗控制 Expired - Lifetime CN100407102C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43088402P 2002-12-04 2002-12-04
US60/430,884 2002-12-04

Publications (2)

Publication Number Publication Date
CN1720495A CN1720495A (zh) 2006-01-11
CN100407102C true CN100407102C (zh) 2008-07-30

Family

ID=32469554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2003801051091A Expired - Lifetime CN100407102C (zh) 2002-12-04 2003-12-03 基于软件的微处理器功率损耗控制

Country Status (7)

Country Link
US (3) US7500126B2 (zh)
EP (1) EP1573490A2 (zh)
JP (1) JP2006509291A (zh)
KR (1) KR20050085281A (zh)
CN (1) CN100407102C (zh)
AU (1) AU2003283680A1 (zh)
WO (1) WO2004051450A2 (zh)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
CN100407102C (zh) * 2002-12-04 2008-07-30 Nxp股份有限公司 基于软件的微处理器功率损耗控制
JP2004318502A (ja) * 2003-04-16 2004-11-11 Matsushita Electric Ind Co Ltd 電力制御機能を備えたマイクロプロセッサ及び命令変換装置
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US7321980B2 (en) * 2004-01-13 2008-01-22 Texas Instruments Incorporated Software power control of circuit modules in a shared and distributed DMA system
US8607209B2 (en) * 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US7647481B2 (en) * 2005-02-25 2010-01-12 Qualcomm Incorporated Reducing power by shutting down portions of a stacked register file
US8327175B2 (en) * 2005-07-07 2012-12-04 Samsung Electronics Co., Ltd. Data processing systems and methods of operating the same in which memory blocks are selectively activated in fetching program instructions
US7624221B1 (en) * 2005-08-01 2009-11-24 Nvidia Corporation Control device for data stream optimizations in a link interface
US7447923B2 (en) * 2005-08-19 2008-11-04 International Business Machines Corporation Systems and methods for mutually exclusive activation of microprocessor resources to control maximum power
US20070043965A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
US7844804B2 (en) * 2005-11-10 2010-11-30 Qualcomm Incorporated Expansion of a stacked register file using shadow registers
CN100349098C (zh) * 2005-11-28 2007-11-14 北京中星微电子有限公司 基于任务的动态调节cpu工作频率的方法及系统
CN101059685A (zh) * 2006-04-19 2007-10-24 鸿富锦精密工业(深圳)有限公司 具有省电功能的便携式电子装置及其实现方法
WO2008028105A2 (en) * 2006-08-31 2008-03-06 Ati Technologies Ulc Video decoder and/or battery-powered device with reduced power consumption and methods thereof
US20080072015A1 (en) * 2006-09-18 2008-03-20 Julier Michael A Demand-based processing resource allocation
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080109670A1 (en) * 2006-11-06 2008-05-08 Reino Johansson Power control for memories
US20080222399A1 (en) * 2007-03-05 2008-09-11 International Business Machines Corporation Method for the handling of mode-setting instructions in a multithreaded computing environment
US8725991B2 (en) 2007-09-12 2014-05-13 Qualcomm Incorporated Register file system and method for pipelined processing
US8683134B2 (en) * 2008-01-18 2014-03-25 Texas Instruments Incorporated Upgrade of low priority prefetch requests to high priority real requests in shared memory controller
US8145923B2 (en) * 2008-02-20 2012-03-27 Xilinx, Inc. Circuit for and method of minimizing power consumption in an integrated circuit device
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US8205100B2 (en) * 2008-06-19 2012-06-19 Oracle America, Inc. Method and system for power management using tracing data
JP5551868B2 (ja) * 2008-12-17 2014-07-16 富士通株式会社 実行ファイル作成装置
DE102009019891B3 (de) * 2009-05-04 2010-11-25 Texas Instruments Deutschland Gmbh Mikrocontroller- oder Mikroprozessoreinheit und Verfahren zum Betreiben derselben
US8566618B2 (en) * 2009-10-05 2013-10-22 International Business Machines Corporation Reliable setting of voltage and frequency in a microprocessor
WO2011054148A1 (zh) * 2009-11-06 2011-05-12 华为技术有限公司 一种资源配置方法和装置
US20110208505A1 (en) * 2010-02-24 2011-08-25 Advanced Micro Devices, Inc. Assigning floating-point operations to a floating-point unit and an arithmetic logic unit
US8407499B2 (en) 2010-04-20 2013-03-26 International Business Machines Corporation Optimizing power management in partitioned multicore virtual machine platforms by uniform distribution of a requested power reduction between all of the processor cores
TWI432953B (zh) 2010-12-09 2014-04-01 Ind Tech Res Inst 具電源管理之超長指令處理器以及其電源管理裝置與方法
US9058165B2 (en) * 2011-05-05 2015-06-16 Empire Technology Development Llc Device power management using compiler inserted device alerts
US8615745B2 (en) 2011-10-03 2013-12-24 International Business Machines Corporation Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization
US9286072B2 (en) 2011-10-03 2016-03-15 International Business Machines Corporation Using register last use infomation to perform decode-time computer instruction optimization
US10078515B2 (en) 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
US8612959B2 (en) 2011-10-03 2013-12-17 International Business Machines Corporation Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization
US9354874B2 (en) 2011-10-03 2016-05-31 International Business Machines Corporation Scalable decode-time instruction sequence optimization of dependent instructions
US9329869B2 (en) 2011-10-03 2016-05-03 International Business Machines Corporation Prefix computer instruction for compatibily extending instruction functionality
US8756591B2 (en) 2011-10-03 2014-06-17 International Business Machines Corporation Generating compiled code that indicates register liveness
US9697002B2 (en) 2011-10-03 2017-07-04 International Business Machines Corporation Computer instructions for activating and deactivating operands
US9690583B2 (en) 2011-10-03 2017-06-27 International Business Machines Corporation Exploiting an architected list-use operand indication in a computer system operand resource pool
WO2013101069A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Core switching accelaration in asymmetric multiprocessor system
KR101978409B1 (ko) * 2012-02-28 2019-05-14 삼성전자 주식회사 재구성가능 프로세서, 이를 위한 코드 변환 장치 및 방법
US8959371B2 (en) 2012-07-17 2015-02-17 Freescale Semiconductor, Inc. Techniques for reducing processor power consumption through dynamic processor resource allocation
KR102063716B1 (ko) 2013-05-14 2020-02-11 삼성전자주식회사 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법
US10175981B2 (en) 2013-07-09 2019-01-08 Texas Instruments Incorporated Method to control the number of active vector lanes for power efficiency
US10732689B2 (en) 2013-07-09 2020-08-04 Texas Instruments Incorporated Controlling the number of powered vector lanes via a register field
US8976618B1 (en) * 2013-10-28 2015-03-10 Qualcomm Incorporated Decoded 2N-bit bitcells in memory for storing decoded bits, and related systems and methods
US10180828B2 (en) * 2014-04-29 2019-01-15 Significs And Elements, Llc Systems and methods for power optimization of processors
FR3026206B1 (fr) * 2014-09-23 2017-12-01 Inside Secure Procede de contremesure contre une attaque par analyse de consommation electrique pour dispositif cryptographique
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
GB2539038B (en) 2015-06-05 2020-12-23 Advanced Risc Mach Ltd Processing pipeline with first and second processing modes having different performance or energy consumption characteristics
KR102476357B1 (ko) 2015-08-06 2022-12-09 삼성전자주식회사 클럭 관리 유닛과 이를 적용하는 집적 회로 및 시스템 온 칩 및 그 동작 방법
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10655872B2 (en) 2017-04-06 2020-05-19 Eaton Intelligent Power Limited Load management system and method utilizing breaker metering data and occupancy data
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
CN111448497B (zh) 2017-12-10 2023-08-04 奇跃公司 光波导上的抗反射涂层
AU2018392482A1 (en) 2017-12-20 2020-07-02 Magic Leap, Inc. Insert for augmented reality viewing device
CN112136152A (zh) 2018-03-15 2020-12-25 奇跃公司 由观看设备的部件变形导致的图像校正
US11885871B2 (en) 2018-05-31 2024-01-30 Magic Leap, Inc. Radar head pose localization
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
US11510027B2 (en) 2018-07-03 2022-11-22 Magic Leap, Inc. Systems and methods for virtual and augmented reality
WO2020023545A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Temperature dependent calibration of movement detection devices
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
EP3831058A4 (en) 2018-08-02 2022-04-20 Magic Leap, Inc. VIEWING SYSTEM WITH PUPILE DISTANCE COMPENSATION BASED ON HEAD MOVEMENT
EP3830631A4 (en) 2018-08-03 2021-10-27 Magic Leap, Inc. NON-FUSED POSE DRIFT CORRECTION OF A FUSED TOTEM IN A USER INTERACTION SYSTEM
JP7472127B2 (ja) 2018-11-16 2024-04-22 マジック リープ, インコーポレイテッド 画像鮮明度を維持するための画像サイズによってトリガされる明確化
TWI697841B (zh) * 2018-12-18 2020-07-01 新唐科技股份有限公司 控制電路及快速設定電源模式的方法
US11425189B2 (en) * 2019-02-06 2022-08-23 Magic Leap, Inc. Target intent-based clock speed determination and adjustment to limit total heat generated by multiple processors
EP3939030A4 (en) 2019-03-12 2022-11-30 Magic Leap, Inc. REGISTRATION OF LOCAL CONTENT BETWEEN FIRST AND SECOND VIEWERS OF AUGMENTED REALITY
US11139270B2 (en) 2019-03-18 2021-10-05 Kepler Computing Inc. Artificial intelligence processor with three-dimensional stacked memory
US11836102B1 (en) 2019-03-20 2023-12-05 Kepler Computing Inc. Low latency and high bandwidth artificial intelligence processor
WO2020223636A1 (en) 2019-05-01 2020-11-05 Magic Leap, Inc. Content provisioning system and method
US11043472B1 (en) 2019-05-31 2021-06-22 Kepler Compute Inc. 3D integrated ultra high-bandwidth memory
US11844223B1 (en) 2019-05-31 2023-12-12 Kepler Computing Inc. Ferroelectric memory chiplet as unified memory in a multi-dimensional packaging
WO2021021670A1 (en) 2019-07-26 2021-02-04 Magic Leap, Inc. Systems and methods for augmented reality
US11737832B2 (en) 2019-11-15 2023-08-29 Magic Leap, Inc. Viewing system for use in a surgical environment
US11289497B2 (en) 2019-12-27 2022-03-29 Kepler Computing Inc. Integration method of ferroelectric memory array
US11791233B1 (en) 2021-08-06 2023-10-17 Kepler Computing Inc. Ferroelectric or paraelectric memory and logic chiplet with thermal management in a multi-dimensional packaging

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0991191A2 (en) * 1998-09-09 2000-04-05 Texas Instruments Incorporated System and method for reducing power dissipation in a circuit
CN1276070A (zh) * 1997-09-29 2000-12-06 英特尔公司 减少集成电路功耗的局部性能调节
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6145354A (ja) * 1984-08-10 1986-03-05 Nec Corp マイクロプロセツサ
JPS6151243A (ja) * 1984-08-20 1986-03-13 Toshiba Corp レジスタ式演算処理装置
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
US5799179A (en) 1995-01-24 1998-08-25 International Business Machines Corporation Handling of exceptions in speculative instructions
EP0809825A1 (en) * 1995-02-14 1997-12-03 Vlsi Technology, Inc. Method and apparatus for reducing power consumption in digital electronic circuits
US5996083A (en) * 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
US5745375A (en) 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
US5627492A (en) * 1995-11-03 1997-05-06 Motorola, Inc. Circuit and method for isolating circuit blocks for reducing power dissipation
US6785826B1 (en) * 1996-07-17 2004-08-31 International Business Machines Corporation Self power audit and control circuitry for microprocessor functional units
US5910930A (en) * 1997-06-03 1999-06-08 International Business Machines Corporation Dynamic control of power management circuitry
US6604202B1 (en) * 1998-11-20 2003-08-05 Hitachi, Ltd. Low power processor
US6535984B1 (en) * 1998-11-25 2003-03-18 Texas Instruments Incorporated Power reduction for multiple-instruction-word processors with proxy NOP instructions
US6477654B1 (en) * 1999-04-06 2002-11-05 International Business Machines Corporation Managing VT for reduced power using power setting commands in the instruction stream
US6345362B1 (en) * 1999-04-06 2002-02-05 International Business Machines Corporation Managing Vt for reduced power using a status table
US6625740B1 (en) * 2000-01-13 2003-09-23 Cirrus Logic, Inc. Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
US6965991B1 (en) * 2000-05-12 2005-11-15 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
US6845445B2 (en) 2000-05-12 2005-01-18 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
US6625737B1 (en) * 2000-09-20 2003-09-23 Mips Technologies Inc. System for prediction and control of power consumption in digital system
WO2002057893A2 (en) * 2000-10-27 2002-07-25 Arc International (Uk) Limited Method and apparatus for reducing power consuption in a digital processor
US6704877B2 (en) 2000-12-29 2004-03-09 Intel Corporation Dynamically changing the performance of devices in a computer platform
EP1358538B1 (en) * 2001-02-07 2010-08-11 Qualcomm Incorporated Method and apparatus for applying clock signals to the processor of mobile subscriber station to manage power consumption
US6948051B2 (en) * 2001-05-15 2005-09-20 International Business Machines Corporation Method and apparatus for reducing logic activity in a microprocessor using reduced bit width slices that are enabled or disabled depending on operation width
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
FI20011947A (fi) * 2001-10-05 2003-04-06 Nokia Corp Menetelmä suorittimen toiminnan ohjaamiseksi ja suoritin
US7577944B2 (en) * 2002-03-18 2009-08-18 Hewlett-Packard Development Company, L.P. Unbundling, translation and rebundling of instruction bundles in an instruction stream
KR20050084121A (ko) * 2002-12-04 2005-08-26 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 회로 장치, 전력 소모 제어 방법, 프로그램 저장 매체 및신호 지속 매체
CN100407102C (zh) * 2002-12-04 2008-07-30 Nxp股份有限公司 基于软件的微处理器功率损耗控制

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1276070A (zh) * 1997-09-29 2000-12-06 英特尔公司 减少集成电路功耗的局部性能调节
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
EP0991191A2 (en) * 1998-09-09 2000-04-05 Texas Instruments Incorporated System and method for reducing power dissipation in a circuit

Also Published As

Publication number Publication date
WO2004051450A2 (en) 2004-06-17
US20060179329A1 (en) 2006-08-10
EP1573490A2 (en) 2005-09-14
AU2003283680A1 (en) 2004-06-23
KR20050085281A (ko) 2005-08-29
JP2006509291A (ja) 2006-03-16
US20110231688A1 (en) 2011-09-22
WO2004051450A3 (en) 2005-02-03
US8181054B2 (en) 2012-05-15
CN1720495A (zh) 2006-01-11
US7500126B2 (en) 2009-03-03
US20090125742A1 (en) 2009-05-14

Similar Documents

Publication Publication Date Title
CN100407102C (zh) 基于软件的微处理器功率损耗控制
US7539879B2 (en) Register file gating to reduce microprocessor power dissipation
Gonzalez et al. Energy dissipation in general purpose microprocessors
Su et al. Low power architecture design and compilation techniques for high-performance processors
US6978389B2 (en) Variable clocking in an embedded symmetric multiprocessor system
EP1137984B1 (en) A multiple-thread processor for threaded software applications
CN105144082B (zh) 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择
Tabkhi et al. Application-guided power gating reducing register file static power
US20020112193A1 (en) Power control of a processor using hardware structures controlled by a compiler with an accumulated instruction profile
CN109948200B (zh) 一种细粒度控制电源供应的低功耗处理器
JP4800582B2 (ja) 演算処理装置
Gray et al. Viper: A vliw integer microprocessor
US7536485B2 (en) Processor having inactive state of operation and method thereof
US6829700B2 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
Lim et al. CalmRISC™: a low power microcontroller with efficient coprocessor interface
Tabkhi et al. AFReP: application-guided function-level registerfile power-gating for embedded processors
MAEJIMA et al. Design and architecture for low-power/high-speed RISC microprocessor: SuperH
Delaluz et al. Memory energy management using software and hardware directed power mode control
Ackland et al. A new generation of DSP architectures
US8095780B2 (en) Register systems and methods for a multi-issue processor
JP3729142B2 (ja) 並列演算処理装置
Saghir et al. Reducing Power of Memory Hierarchy in General Purpose Graphics Processing Units
Moshnyaga et al. Energy saving techniques for architecture design of portable embedded devices
Chang et al. Customization of a CISC processor core for low-power applications
Panda Power Optimisation Strategies Targeting the Memory Subsystem

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: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20071130

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

Effective date of registration: 20071130

Address after: Holland Ian Deho Finn

Applicant after: NXP B.V.

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

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

Owner name: LETES TECHNICAL 45TH JOINT SECURITY TRUST FUND STA

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20150202

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

Effective date of registration: 20150202

Address after: California, USA

Patentee after: I Committee on Joint Security Trust Fund for technology forty-fifth

Address before: Holland Ian Deho Finn

Patentee before: NXP B.V.

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

Effective date of registration: 20160517

Address after: Regensburg, Germany

Patentee after: OSRAM OPTO SEMICONDUCTORS GmbH

Address before: California, USA

Patentee before: I Committee on Joint Security Trust Fund for technology forty-fifth

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080730