CN1523473A - 一种用于管理微处理器能源消耗的装置及方法 - Google Patents
一种用于管理微处理器能源消耗的装置及方法 Download PDFInfo
- Publication number
- CN1523473A CN1523473A CNA200410031313XA CN200410031313A CN1523473A CN 1523473 A CN1523473 A CN 1523473A CN A200410031313X A CNA200410031313X A CN A200410031313XA CN 200410031313 A CN200410031313 A CN 200410031313A CN 1523473 A CN1523473 A CN 1523473A
- Authority
- CN
- China
- Prior art keywords
- energy
- functional element
- microprocessor
- resource consumption
- logic circuit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000005265 energy consumption Methods 0.000 title description 12
- 230000009467 reduction Effects 0.000 claims abstract description 31
- 230000000694 effects Effects 0.000 claims abstract description 28
- 230000009471 action Effects 0.000 claims description 33
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 26
- 238000007667 floating Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 41
- 238000000605 extraction Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 21
- 230000008569 process Effects 0.000 description 16
- 230000008859 change Effects 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 210000003127 knee Anatomy 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000000429 assembly Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000035876 healing Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
- Microcomputers (AREA)
Abstract
本发明公开了一种微处理装置及方法,其中该装置包含多个功能性单元,这些功能性单元可进入一能源消减模式用以减少能源消耗。这些多个功能性单元分别产生活动信号用以指示每一功能性单元所作的活动的等级。能源使用估计逻辑电路监控着活动输出,用以决定微处理器一目前能量总消耗值。当目前能量总消耗值超过一能源临界值时,该微处理器可进入一系列的能源消减模式,用以减少能源的耗损。
Description
技术领域
本发明涉及一种微处理器的能源管理,尤其涉及一种在微处理器中利用控制资源以达到能源管理的装置及方法。
背景技术
对于现代的计算机系统而言,能源消耗的管理在设计上是一个极重要的考虑。这项论点,在所谓的膝上型轻便计算机或是笔记型计算机这两项产品上更是不可置否,对于喜爱携带方便或是经常出游的使用者来说,膝上型轻便计算机或是笔记型计算机的电池寿命将是一个重要的问题。因此,在这样一个工作环境需求因素下,促使计算机设计人员提供可减少能源消耗的技术来设计较省能源的计算机。
一个能减少能源消耗的方法便是多重能源机制,该机制已在微软的Windows XP操作系统实现。举例来说,这类机制包含有1)家用/办公室、2)携带/膝上型轻便计算机、3)展示模式、4)无需能源管理、5)能源控管最小化、6)电池最小用量等六种模式。在这些个模式中,不外乎就是超过闲置时间后便针对计算机系统中的各部分装置或组件进行停止供电以节省能源。以携带/膝上型轻便型计算机为例,当该携带/膝上型轻便型计算机系统以电池供电运行时,若系统闲置超过五分钟以上则硬盘自动停止运转、若系统闲置超过十五分钟以上则自动停止对屏幕供电、若系统闲置超过十五分钟以上便进入待机状态、若系统闲置超过二个小时以上便进入休眠状态。
除了上述将计算机系统的各种组件停止运行以节省能源的方法外,尚有另一个方法则是当计算机系统运行时,控制与微处理器相关的能源消耗。其中又分成两大类,一是改变微处理器内部的中心频率,二是改变微处理器的电压。举例来说,若是将微处理器内部的中心频率降低同时将微处理器的中心电压调降便能大大地减少微处理器的能源消耗。然而,在现今这两个方法皆需依赖外部输入以指示微处理器,因此微处理器依然消耗大量的能源。
在许多情况下,计算机系统所依赖的操作系统会动态地估计微处理器能源利用的情形。借助监控微处理器执行特殊种类的使用者程序而且根据一系列运行型态粗略地测量能源消耗的总量。举个例子,一个影像处理程序(如:MPEG译码器)使用许多显著的单一指令/多重数据指令,而这些指令则是相当依赖微处理器中的某些功能性单元。因此,由于高阶的微处理器内部架构使得操作系统能够猜测性地估计出执行特殊应用程序时的能源消耗总量,若是估计出的能源消耗相当低,表示没必要将处理器的效能降低,然而若是估计出一个相当大的消耗量超出一个预定值,操作系统可以指示微处理器降低处理的效能以达到减少能源消耗的目的。如上所述,似乎暗示着降低效能就如同借助降低中心运行频率或是同时降低中心运行频率及电压以减少能源消耗。如此这些能源管理的方法仰赖降低一些系统步骤或状态所消耗的能源,而这些方法是较为粗糙的。
现代的计算机都遵守电力管理系统接口的规范,操作系统能直接对主机板上的装置进行变更组态且也能进行能源管理,即电力管理系统接口是操作系统直接组态与电源管理的主要元素。简言之,电力管理系统接口为微处理器提供了多重能源状态给操作系统控制,但是这些多重能源状态能达到的水平一样是与先前所述的节省能源机制没有太大的差别。
在应用上,上述的能源管理方法对于计算机系统整个生命周期来说是无益的。例如在太空试验探针中管理数以百计的微处理组件的能源消耗能够延长该探针的寿命而能使它能执行更多的实验。但是在现今能源管理的技术已是完全彰显于微处理器估计与管理能源消耗的能力,因为这些能源管理的技术是依赖外部感应机机制来粗略地推断被消耗的能量总量,这些微处理器提供相称数量的能源管理步骤供以操作系统直接控制。现今微处理器无法提供一个精确的方法用以管理能源消耗,而这样的精确方法应该是具备一个有意义的并且是由功能性单元产生的回馈。
发明内容
因此,本发明的目的是将一个微处理器中需要的每个单独的功能性组件的能源使用划分至很细的程度使得能源消耗更精确地控制与管理。
为了实现上述目的,本发明提供一种处理器包含多个功能性单元,每一该功能性单元包含多个相对应的活动输出,当每一该功能性单元允许时,相对应的这些活动输出将用于指示活动;该处理器也包含一能源使用估计逻辑电路,耦合至这些活动输出,用以估计目前的活动以决定该微处理器一目前能源总消耗值;该处理器又包含一能源控制逻辑电路,耦合至该能源使用估计逻辑电路,用以将该目前能源总消耗值与一能源临界值作比较,其中该能源临界值包含于一特定能源特性数据中;该处理器又包含一能源消耗控制器,耦合至该能源控制逻辑电路以及这些功能性单元,当该目前能源总消耗值超过该能源临界值时,用以操作多个能源消减模式的其中一个。
本发明又提供一种处理器包含多个功能性单元,每一个单元包含多个相对应的活动输出,当每一该功能性单元允许时,相对应的这些活动输出将用于指示活动;该处理器又包含一能源使用估计逻辑电路,耦合至这些活动输出,用以估计目前的活动以决定该微处理器一目前能源总消耗值;该处理器也包含一能源控制逻辑电路,耦合至该能源使用估计逻辑电路,用以将该目前能源总消耗值与一能源临界值作比较,其中该能源临界值包含于一特定能源特性数据中;该处理器也包含一能源消耗控制器,耦合至该能源控制逻辑电路,当该目前能源总消耗值超过该能源临界值时用以禁止一第一功能性单元以减少微处理器的能源消耗。
本发明还提供一种微处理器包含多个功能性单元,每一该功能性单元包含一活动输出,当每一该功能性单元允许时,相对应的该活动输出将用于指示活动;该微处理器又包含一能源管理逻辑电路,耦合至每一该功能性单元的活动输出,用以估计每一该功能性单元的活动以决定微处理器一目前能源总消耗值;该微处理器也包含一能源消耗控制器,耦合至该能源管理逻辑电路以及这些功能性单元,当该目前能源总消耗值超过该能源临界值时,禁止至少一个该功能性单元的能源消耗。
本发明提供一种用于管理一微处理器能源消耗的方法,该微处理器包含多个功能性单元,该方法包括:指定一能源特性数据予该微处理器,该能源特性数据具有一能源临界值;估计每一该功能性单元的活动以决定微处理器一目前能源总消耗值;比较该目前能源总消耗值与该能源临界值;当该目前能源总消耗值超过该能源临界值时,操作多个能源消减模式的其中一个模式。
本发明还提供一种用于管理一微处理器能源消耗的方法,该方法包含:由多个能源特性数据中选取一个予该微处理器,其中每一这些能源特性数据具有一能源临界值;估计每一该功能性单元的活动以决定微处理器一目前能源总消耗值;比较该目前能源总消耗值与该能源临界值;当该目前能源总消耗值超过该能源临界值时,禁止至少一个该功能性单元以减少该微处理器的能源消耗。
本发明的优点在于,能够减少能源耗损,并且可以根据使用者所指定的能源特性数据来进行能源管理。关于本发明的优点与精神可以借助以下的发明详述及附图得到进一步的了解。
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举一较佳实施例,并配合附图,作详细说明如下:
附图说明
图1显示已知计算机系统方框图。
图2显示本发明的微处理器方框图。
图3显示根据本发明的图2的微处理器的部份详细方框图。
图4显示能源控制指令信号的示意图。
图5显示组成能源控制指令信号的地址及命令的对照表。
图6显示根据本发明的一实施例运行的流程图。
其中,附图标记说明如下:
100:已知计算机系统 105:微处理器
110:电源供应器 115:主机与输入/输出控制器
120:主存储器 125:显示器
130:图形控制器 135:非挥发性储存装置
145:扩充槽 150:扩充总线
155:输入输出装置 160:基本输入输出系统固件
165:操作系统
200:微处理器
201~20N:功能性单元 210:能源使用估计逻辑电路
210A:USE信号 215:能源管理逻辑电路
220:能源控制逻辑电路 225:控制总线
230:能源消耗控制器
300:微处理器
301:提取单元 302:转译单元
303:缓存单元 304:地址单元
305:执行单元 306:写回单元
310:内存 315:高速缓存单元
320:分支预测单元 325:能源使用估计逻辑电路
330:能源管理逻辑电路 335:USE总线
340:能源控制逻辑电路 345:能源消耗控制器
350:SELECT输入 355:控制总线
360:可变电压的电源供应器 370:能源供应控制单元
372:可变时钟频率控制单元 374:L1高速缓存控制单元
376:L2高速缓存控制单元 378:分支预测控制单元
380:可变速率配给器 382:浮点数控制单元
384:多媒体延伸控制单元 386:其它控制单元
400:控制指令 405:控制单元地址栏
410:指令字段
具体实施方式
现参考图1,显示已知计算机系统100方框图使用一微处理器105,而该微处理器105的能源管理是外接的。电源供应器110耦合至微处理器105、主机与输入/输出控制器115以及系统100的其它的组件。控制器115耦合至微处理器105、主存储器120以及经由图形控制器130耦合至显示器125。非挥发性储存装置135如硬盘或是其它储存媒体,耦合至控制器115以提供给系统100固定性的储存。扩充槽145经由扩充总线150耦合至控制器115。输入输出装置155如键盘或是鼠标,皆耦合至控制器115。基本输入输出系统固件160耦合至控制器115,用以控制系统100中其它硬件装置的运行。
上述所有的装置所消耗的能源皆来自于能源供应器110。当系统100启动(如:开机)操作系统165在基本输入输出系统固件160的指示下,将会从非挥发性储存装置135加载至主存储器120,之后微处理器105将执行操作系统。这个例子显示计算机系统100利用之前提到的电力管理系统接口使得操作系统能够直接进行主机板装置组态以及电源管理。电力管理系统接口提供一个管道,使得操作系统能够操作各种能源状态来进行能源管理,这些能源状态包含:主动状态,在此状态下微处理器105得以执行指令;多重睡眠状态,在此状态下微处理器105比较起主动状态下,消耗较少的能源、散发较少的热量。当微处理器105在主动状态下,电力管理系统接口也能够降低微处理器的效能以求节省能源。在某些相关的系统中,也已经有外接的微控制器接受输出输入系统的指示,用以管理能源耗损。
现参考图2,显示本发明的微处理器方框图。于微处理器200中,能源的消耗是动态地被管理如同一个资源利用的函数。在此实施例中,各种功能性单元所使用的能源将会被测量以及处理借以决定整个微处理器的能源消耗,而此项能源消耗数值比较起先前提到粗略估计要更为精细。
微处理器200包含功能性单元201-20N,其中N是功能性单元的数量。功能性单元201-20N是一种逻辑电路、电路、装置或是微程序(如:微指令或是原生码)或是一种逻辑电路、装置、微程序或是等效组件的组合,用以处理特别的函数。举例来说,在微处理器200中的这些功能性单元201-20N可能是提取单元、转换器、缓存单元、地址单元、执行单元、正整数单元、浮点数单元、多媒体延伸单元、算数逻辑单元、写回单元、分支预测单元以及各种等级的内部高速缓存。在此实施例中,功能性单元每个都包含一个输出主动信号,主动信号说明特定的某个功能性组件是主动的(即被允许且处理它特定的函数时)以及消耗的能源。这些输出主动信号可以是活动输出,在另一个实施中,这些输出主动信号的值指出特定的功能性单元消耗的能源。
这些功能性单元的输出主动信号(或活动输出)耦合至能源使用估计逻辑电路210的输入端,该能源使用估计逻辑电路210存在于能源管理逻辑电路215内。能源管理逻辑电路215是一种逻辑电路、电路、装置或是微程序(如:微指令或是原生码)或是一种逻辑电路、装置、微程序或是等效组件的组合,用以处理能源管理的活动。在此实施例中,能源管理逻辑电路215分别估计功能性单元201-20N的能源消耗,此外能源管理逻辑电路215也会随着时间变化动态地决定微处理器200中的所有功能性单元201-20N消耗能源的总量。一旦目前能源总消耗值决定并且如果有需要的话,能源管理逻辑电路215便会采取动作增加或减少功能性单元201-20N的能源消耗。即是说如果在某个时间点上,目前能源总消耗值大于一个预先决定的临界值,则能源管理逻辑电路215便会采取动作以减少功能性单元201-20N的各别能源消耗。在实行这一个估计和控制能源的程序时,个别与整体的功能性单元201-20N所消耗能源的量会一起监控及精确地估计。更有利地,根本不需依靠外接式的传感器更能达到这样的功效。
更深入点地说,监控有些或所有的功能性单元201-20N所消耗的能量以决定他们的能量消耗。而本领域技术人员都知道其实可以只量测部份的201-20N功能性单元,不过为了精确度还是建议量测尽量多的功能性单元。即,虽然并不是一定要测量出每一个功能性单元所消耗能,但还是尽可能地在某个特别的应用程序执行时,最好能测量出每一个功能性单元所消耗的能源。
能源使用估计逻辑电路210是一种逻辑电路、电路、装置或是微程序(如:微指令或是原生码)或是一种逻辑电路、装置、微程序或是等效组件的组合,用以估计功能性单元201-20N的能源消耗。能源使用估计逻辑电路210包含一个输出210A,此为一个“USE”信号,产生此信号用以提供一个目前功能性单元201-20N所消耗的量。借助能源使用估计逻辑电路210所提供的“使用”信号指示目前能源消耗的量,这样一个机制在后面会更详细地说明。在一实施例中,信号“使用”包含能源总消耗值且耦合至能源控制逻辑电路220。能源控制逻辑电路220监控着信号“使用”指示能源总消耗值何时大于一个预先决定的临界值时,若在某个时间点能源总消耗值大于一个预先决定的临界值,则能源控制逻辑电路220生一个适当的信号经由控制总线225指示能源消耗控制器230减少任一个或是所有的功能性单元201-20N减少能源消耗。此时,至少一个功能性单元201-20N便进入了一个能源消减模式。借助能源控制逻辑电路220与能源消耗控制器230连接而运行用以减少微处理器能源消耗的机制在图3会更加详细说明。借助能源消耗控制器230进入能源消减模式以减少能源消耗的例子包含:减少微处理器200的电压供应、降低微处理器200的频率、禁止内部高速缓存、降低发放指令的速率以及禁止分支预测。其它的能源消减模式也可能是上述例子中的组合。在微处理器200中的其它组件也可以被降低效能以达到此目的。
请参阅图3与图2一起讨论,图3显示根据本发明的图2的微处理器的部份详细方框图。图2与图3中的所描写的术语或是命名有点相似。在一实施例中,微处理器300是一个平行处理化X86架构的处理器,包含下列功能性单元:提取单元301、转译单元302、缓存单元303、地址单元304、执行单元305以及写回单元306。每一个功能性单元301-306包含一个频率信号CLK的输入。
每个功能性单元301-306也包含一个活动输出(在图3中称为ACTIVE),每一个活动输出提供一个活动信号以显示相对应的功能性单元正在运行以及消耗能源,这些动作和先前图2中提过的动作相同。在一实施例中,活动信号ACTIVE输出指示个别功能性单元301-306如何活动以及活动输出提供个别功能性单元301-306随着时间所消耗的能源。活动输出是每个频率周期刷新一次,而活动输出的刷新可说明相对应的功能性单元是否为主动(即,允许与处理特别的函数)状态。有些功能性单元301-306可以被禁止、控制减少能源消耗并且允许或是当不再需要节省能源时控制增加能源消耗。
如图3所示,内存310经由高速缓存单元315耦合至提取单元301。高速缓存单元315包含L1高速缓存及L2高速缓存,其中L1高速缓存包含EN/DIS输入(即,允许/禁止),因此为了节少能源消耗可以禁止L1高速缓存,但也会降低系统效能。同样地,L2高速缓存包含EN/DIS输入(即,允许/禁止),因此为了节省能源消耗可以禁止L2高速缓存,但也会降低系统效能。而当L1高速缓存与L2高速缓存都允许时,根据说明书系统能够达到最好的效能。
微处理器300包含一分支预测单元320,该分支预测单元320耦合至该提取单元301。当微处理器300在一个正在执行的程序中遇到一个分支指令时,分支预测单元320提供微处理器300一是否要分支的预测。分支预测单元320能够加快微处理器300的执行速度,但是在某些应用中它并非是很重要的组件。在图3的微处理器300中,分支预测单元320包含EN/DIS输入,因此为了节省能源消耗可以禁止,但也会降低系统效能。
在此实施例中,执行单元305包含一整数单元(IU)一浮点数单元(FPU)以及一多媒体延伸单元,用以掌控多媒体延伸指令。在程序执行时浮点数单元并非必要的,但是对于某些应用程序,浮点数单元可以加快微处理器300的处理速度。浮点数单元包含EN/DIS输入,因此为了节省能源消耗可以禁止,但也会降低系统效能。或是为了执行浮点运算,将它允许以增加效率。相同地,多媒体延伸单元包含EN/DIS输入,因此为了节省能源消耗可以禁止,但也会降低系统效能。
如上所述,在此实施例中的提取单元301、转译单元302、缓存单元303、地址单元304、执行单元305以及写回单元306,每一个都有活动输出(标示着ACTIVE)。每一该活动输出指出相对应的单元被允许并且正在处理特定的函数。以另一个角度来看,活动输出指出相对应的单元各自的能源消耗。先前提到执行单元305中包含的整数单元(IU)、浮点数单元(FPU)以及多媒体延伸单元也都有活动输出(ACTIVE)也以相同的方式指出能源的消耗。这些活动输出皆耦合至能源使用估计逻辑电路325,能源使用估计逻辑电路325包含在能源管理逻辑电路330中。需要注意的是,在此微处理器300中,提取单元301、转译单元302、缓存单元303以及写回单元306被认为在处理器运算时是极为重要的,因此都不包含EN/DIS输入无法使提取单元301、转译单元302、缓存单元303以及写回单元306禁止以节省能源消耗。但是在能源管理逻辑电路330的控制之下,当活动或是能源消耗到达某个程度时,功能性单元301-306的频率以及/或电源供应可被减少以节省能源,在后面会更详细解释。减少频率以及电源供应皆是本发明所考虑额外的能源消减模式。
能源管理逻辑电路330估计以及监控能源消耗,经由各种的功能性单元301-306、315以及320将更仔细地讨论如下。能源使用估计逻辑电路325监控着前述的功能性单元301-306、315以及320的活动输出,并且被告知每一个功能性单元301-306、315以及320的活动总数。在某些情况下,特定的功能性单元301-306、315以及320的活动总数与该功能性单元的能源消耗有着密切的关系。而在其它情况,一个功能性单元301-306、315以及320不管它是否处理本身该处理的特定函数,它只会消耗固定的能源。为了方便讨论,假设微处理器300初始化完成,所有的功能性单元301-306、315以及320都被允许且消耗能源。在这情形下,从各种功能性单元301-306、315以及320所送出的活动信号皆有数值指示活动。数值愈高的活动信号代表着该活动愈庞大以及该活动消耗的能源也愈大。
在一示范的实施例中,能源使用估计逻辑电路325包含一对照表1,表1的内容说明每个功能性单元301-306、315以及320的活动输出与能源消耗的对应关系。活动信号的数值范围由1至10,数值为1代表对应的该功能性单元最小的活动量,数值为10代表对应的该功能性单元最大的活动量。请注意不同的功能性单元301-306、315以及320所消耗的能源也不尽相同。因此,一个功能性单元的活动信号数值为10以比例对应的能源消耗值与另一个功能性单元的活动信号数值为10以比例对应的能源消耗值也许是不同的,取决于每一该功能性单元301-306、315以及320的最大能源消耗值。
功能性单元 | 活动信号数值 | 对应的能源消耗(瓦) |
L1高速缓存 | 1-10 | 0.1-0.5 |
L2高速缓存 | 1-10 | 0.1-1 |
分支预测单元 | 1-10 | 0.1-1 |
提取单元 | 1-10 | 0.2-2 |
转译单元 | 1-10 | 0.2-2 |
缓存单元 | 1-10 | 0.2-2 |
地址单元 | 1-10 | 0.2-2 |
执行单元(IU) | 1-10 | 0.1-2 |
执行单元(FPU) | 1-10 | 0.1-2 |
执行单元(MMX) | 1-10 | 0.1-1 |
写回单元 | 1-10 | 0.2-2 |
TOTAL | 17.5max |
表一.(对照表1)
在表一中的信息显示一个示范的微处理器中功能性单元的活动信号数值与对应的能源消耗值。在实际情况下,功能性单元301-306、315以及320的活动信号数值与对应的能源消耗值是会随着微处理器不同而也有所差异。在此实施例中,功能性单元301-306、315以及320的活动信号数值与对应的能源消耗值是借助量测与分析之后,产生的一个预先决定值。在表一中的能源消耗值横越活动信号数值整个1-10的范围,例如表一中关于L2高速缓存的部分显示于表二,如下:
功能性单元 | 活动信号数值 | 对应的能源消耗(瓦) |
L2高速缓存 | 1 | .1 |
L2高速缓存 | 2 | .2 |
L2高速缓存 | 3 | .3 |
L2高速缓存 | 4 | .4 |
L2高速缓存 | 5 | .5 |
L2高速缓存 | 6 | .6 |
L2高速缓存 | 7 | .7 |
L2高速缓存 | 8 | .8 |
L2高速缓存 | 9 | .9 |
L2高速缓存 | 10 | 1.0 |
表二(L2高速缓存)
相同地,表一中关于提取单元301的部分显示于表三,如下:
功能性单元 | 活动信号数值 | 对应的能源消耗(瓦) |
提取单元 | 1 | .2 |
提取单元 | 2 | .4 |
提取单元 | 3 | .6 |
提取单元 | 4 | .8 |
提取单元 | 5 | 1.0 |
提取单元 | 6 | 1.2 |
提取单元 | 7 | 1.4 |
提取单元 | 8 | 1.6 |
提取单元 | 9 | 1.8 |
提取单元 | 10 | 2.0 |
表三(提取单元)
值得注意的是,有些功能性单元301-306、315以及320可以接受控制以减少能源消耗,而有些则仅仅只能以禁止的方式减少能源消耗。
由于每一个功能性单元301-306、315以及320的活动信号是提供给能源使用估计逻辑电路325并且借助对照表1用以决定每一个功能性单元301-306、315以及320所对应的目前能源消耗值,所以能源使用估计逻辑电路325能够一个个频率周期动态地、更精确地决定微处理器300的总能源消耗。在一实施例中,每一个功能性单元301-306、315以及320的活动信号可以一个频率周期更新一次,所以这是能作到的。于另一实施例中,活动信号可以每N个频率周期更新一次,N是由1至1000的正整数。
更仔细点地说,能源使用估计逻辑电路325由特定的功能性单元301-306、315以及320接收活动信号并且从表一中查照出相对应的能源消耗值。能源使用估计逻辑电路325聚集个别功能性单元的能源消耗值以决定总能源消耗值并且于USE总线335上回送结果。
为了更详尽地说明能源使用估计逻辑电路325如何决定回送于USE总线335上的总能源消耗值,我们将讨论一个例子。但是,首先让我们回顾一些具有EN/DIS输入能用以禁止并且减少能源消耗的功能性单元,这些功能性单元有L1与L2高速缓存、分支预测单元320以及执行单元305中的浮点运算单元与多媒体延伸单元。而其余的功能性单元,如:提取单元301、转译单元302、缓存单元303、地址单元304、执行单元中的正整数单元以及写回单元306,这些功能性单元皆是以一种可变化的量来消耗能源并且可以接受控制选择性地上述的方法以减少能源消耗。请注意,本发明包含许多个其它的技术用以控制功能性单元301-306的能源消耗,如:改变中心频率、改变核心逻辑电路的电压以及指令交错安排法,即允许指令以每N个频率信号持续进行,N为1至100的正整数。
为了说明此例子,假设微处理器300初始化刚完成,所有的功能性单元301-306、315以及320都被允许。因此所有的功能性单元301-306、315以及320皆要汲取能源而且将产生各自的活动信号以指示于他们的活动输出(标示着ACTIVE)。更具体地说,功能性单元301-306、315以及320将会产生以下显示于表四上的活动信号数值意味着每一个功能性单元301-306、315以及320是主动的且正在消耗能源。
功能性单元 | 监测到的活动信号数值 | 对应的能源消耗(瓦) |
L1高速缓存 | 10 | 0.5 |
L2高速缓存 | 10 | 1 |
分支预测单元 | 10 | 1 |
提取单元 | 10 | 2 |
转译单元 | 10 | 2 |
缓存单元 | 10 | 2 |
地址单元 | 10 | 2 |
执行单元(IU) | 10 | 2 |
执行单元(FPU) | 10 | 2 |
执行单元(MMX) | 10 | 1 |
写回单元 | 10 | 2 |
TOTAL | 10 | 17.5瓦 |
表四、微处理器初始化且功能性单元完全活跃状态
上述总共有11个活动信号提供给能源使用估计逻辑电路325,每一个活动信号数值皆是10,则逻辑电路325决定相对应的每一功能性单元的能源消耗值为0.5、1、1、2、2、2、2、2、2、1以及2并且聚集所有的数值以获得总共17.5瓦当作是微处理器300的总能源消耗值。17.5瓦的总能源消耗值经由USE总线335耦合至能源控制逻辑电路340。值得注意的是,这是动态计算并且能依照需求频繁程度很快速地重复计算。
如果回送于USE总线335上的总能源消耗值超过一预先决定的临界值时,能源控制逻辑电路340将会采取动作以减少功能性单元301-306、315以及320所消耗的能源。预先决定的临界值乃是根据一能源特性数据,该能源特性数据储存于能源控制逻辑电路340中。在一个示范的实施例中,能源控制特性数据以表五(对照表5)型式储存于能源控制逻辑电路340中。示范的对照表5包含能源特性数据与相对应的能源消耗临界值。如果回送于USE总线335上的目前能源消耗总值超过表五中一被选择的能源特性数据中的临界值时,能源控制逻辑电路340将会启动能源消减动作。
能源特性数据 | 临界值(瓦) |
交流主电源模式 | 18 |
船坞模式 | 18 |
可携式-标准模式 | 11 |
可携式-无线模式 | 10 |
展示模式 | 15 |
最大电池寿命模式 | 8 |
最小电源管理模式 | 15 |
航空携带模式-有座位电源 | 18 |
航空携带模式-无座位电源 | 10 |
汽车模式-有能源转换器 | 18 |
汽车模式-无能源转换器 | 18 |
表五(对照表5)
能源控制逻辑电路340包含一SELECT输入350,其中选择信号将被提供给SELECT输入350用以指示选择使用者所需的特定的能源特性数据。例如,使用想要以交流主电源或是在船坞里操作系统,这些地点外部的能源是很容易取得的,则一个合适的选择信号将被提供给SELECT输入350用以指示能源控制逻辑电路340使用18瓦的临界值。如果目前能源消耗总值超过18瓦的临界值时,能源控制逻辑电路340决定采取动作。在这个例子中,所有的功能性单元301-306、315以及320是主动的,而且能源利用估计逻辑电路325所决定的目前能源消耗总值是17.5瓦。在这情况下,因为17.5并没有超过18瓦的临界值,因此能源控制逻辑电路不会采取减少能源消耗的动作。
然而,如果在SELECT输入350中的选择信号指示被选择的能源特性数据为可携式-标准模式时,则11瓦的临界值将被能源控制逻辑电路340所使用。在这个情形下,再次初始化微处理器300,而能源利用估计逻辑电路325依然计算出功能性单元301-306、315以及320消耗17.5瓦。能源控制逻辑电路340发现目前能源总消耗17.5瓦超过能源特性数据文件为可携式-标准模式的临界值11瓦,能源控制逻辑电路340将采取至少一个能源消减的动作。在一实施例中,能源控制逻辑电路340是被设定成禁止微处理器至少一个不重要的功能性单元,直到所有功能性单元301-306、315以及320所消耗的总能源数值小于选择的能源特性数据的临界值。
为了达到能源消减的目的,能源控制逻辑电路340经由控制总线355送出一个控制命令,指示能源消耗控制器345开始着手能源消减动作。如图3显示的实施例中,有六个功能性单元可被禁止以减少能源消耗,如:高速缓存单元315的L1高速缓存与L2高速缓存、分支预测单元320、执行单元305的浮点数单元与多媒体延伸单元以及写回单元306。也值得注意的是,可变电压的电源供应器360可以被指示减少电源供应,对于处理器的功能性单元301-306、315以及320而言是由一较高的电压调成另一较低的电压,以节省能源。而且也可以降低功能性单元时钟频率由一第一时钟频率调成一较低第二时钟频率,以减少微处理器的能源消耗。再者,也可以借助可变速率配给器380降低送给执行单元305指令的速率,以减少微处理器的能源消耗。
能源消耗控制器345包含一能源供应控制单元370耦合至可变电压的电源供应器360、一可变时钟频率控制单元372,该可变时钟频率控制单元372包含一CLK输出耦合至微处理器300的CLK输入、一L1高速缓存控制单元374耦合至高速缓存单元315中L1高速缓存的EN/DIS输入、一L2高速缓存控制单元376耦合至高速缓存单元315中L2高速缓存的EN/DIS输入、一分支预测控制单元378耦合至分支预测单元320的EN/DIS输入、一可变速率配给器380耦合至执行单元305、一浮点数控制单元382耦合至执行单元305中浮点数单元的EN/DIS输入以及一多媒体延伸控制单元384耦合至执行单元305中多媒体延伸单元的EN/DIS输入。能源消耗控制器345也包含一“其它控制单元”386意味着除了此例中讨论的组件外,其它被揭示的技术也可被接受并且能用来控制其它的功能性单元以及微处理器的其它组件。
图4显示一示范的控制指令400的格式。当每一个控制单元要控制相关的功能性单元或是其它微处理器组件时,将会呼叫控制指令。控制指令400包含一控制单元地址栏405位紧接着一指令字段410用于功能性单元或是与该寻址的控制单元相关的组件。如图5中所示,每一该能源消耗控制器中的组件或是控制单元370、372、374、376、378、380、382、384以及386都有一唯一的地址。
借助此例子得知,如果能源控制逻辑电路340所选择的临界值被超过时,能源控制逻辑电路340将会送出指令禁止功能性单元或是控制功能性单元的效能直到反应回来的能源消耗低于所选择的临界值。此外,上述所提及的能源消减动作中,能源控制逻辑电路340也会送出指令造成减少电源供应以及降低频率速度,两者皆可节省大量的能源。
更具体地说,当目前总电源消耗值超过所选择的临界值时,为了减少微处理器300能源的消耗,能源控制逻辑电路340会送出指令至能源供应控制单元370告知它指示可变电压的电源供应器360减少输出电源供应,由一第一高电压,如5伏特,降低至一第二较低电压,如3.3伏特。输出电源供应是借助能源供应控制单元370的输出方向指示以提供给微处理器中的功能性单元以及其它组件,在图3中标示为“TO FU’s”。更具体地说,参考图5中能源供应控制单元那行,能源控制逻辑电路340送出一指令信号,具有一地址0000以及一指令00,其中0000是相对应于能源供应控制单元370的地址,而这指令是经由控制总线355传送的。能源供应控制单元370确认0000地址是自己的并且需要它执行指令中00的动作,而这动作便是改变可变电压的电源供应器360至一个较低的电压,以节省能源。需要注意的是,在此例子中,当目前能源消耗总值超过所选择的临界值时,减少电压供应并不是第一个能源消减动作,还有其它八个能源消耗控制器组件列于图5中,皆能够造成微处理器300进入相对应的能源消减模式。
能源控制逻辑电路340持续监控以决定现阶段被功能性单元301-306、315、320所消耗的能源是否小于所选择的临界值。如果上述的能源消减模式足以减少能源消耗使之低于临界值,则能源控制逻辑电路340不需再采取进一步减少能源消耗的动作。但是,如果能源消减模式不足以减少能源消耗使之低于临界值,则能源控制逻辑电路340会持续指示功能性单元301-306、315、320减少能源消耗。
举例来说,能源控制逻辑电路340送出指令至可变时钟频率控制单元372告知在微处理器的频率输入端降低时钟频率,由一第一频率,如2 GHz,降低至一第二较低频率,如1GHz。更具体地说,参考图5中可变时钟频率控制单元那行,能源控制逻辑电路340送出一指令信号,具有一地址0001以及一指令00,其中0001是相对应于可变时钟频率控制单元372的地址,而这指令是经由控制总线355传送的。可变时钟频率控制单元37确认0001地址是自己的并且需要它执行指令中00的动作,而这动作便是由一高频率的频率调整至一较低频率的频率。如图3所示,这个组合的减少时钟频率信号乃是用于微处理器300中每一个组件的频率输入端CLK。
为了说明,现假设降低时钟频率依然不足以减少能源的消耗,由能源控制逻辑电路340所更新的功能性单元301-306、315以及320的活动信号显示总能源消耗值仍然大于所选择的临值时,便需要额外的能源消减动作。因此,节省能源的效率是必需的。在这事件下,能源控制逻辑电路340送出一指令至L1高速缓存EN/DIS控制单元374告知禁止高速缓存单元315的L1高速缓存。更具体地说,参考图5中L1高速缓存ON/OFF那行,能源控制逻辑电路340送出一指令信号,具有一地址0010以及一指令00,其中0010是相对应于L1高速缓存EN/DIS控制器374的地址。L1高速缓存EN/DIS控制器374确认0010地址是自己的并且需要它执行指令中00的动作,而这动作便是由允许的状态变成禁止的状态,即是由消耗大量的能源变成消耗较少或是最小的能源。高速缓存单元315中的L1高速缓存也因此可被控制以节省能源。
在这个例子中,假设上述最后一个能源消减动作后,微处理器300中的功能性单元301-306、315以及320所消耗的能源低于所选择的临界值。能源控制逻辑电路340侦测出这样的情况后,因为目前的能源特性数据以及相关所选择的临界值的要求已经达到,便无需再采取进一步的能源消减动作。在这个例子中,采取并且进入了三个不同的能源消减模式,而能源控制逻辑电路340也可以采取图5中所列其它的能源消减动作。这些能源消减命令可以变化不同的顺序,并非只是如上述例子的顺序而已,例如,第一能源消减模式可能是关闭L1高速缓存单元,而第二能源消减模式可能是禁止L2高速缓存。而且,可以采取甚至更多的能源消减动作,并非只是如上述例子只采取三个而已。而可想象而知,在这个例子中,同时完成所有的能源消减模式是最大可能的范围。
即使微处理器300已经如上所述减少了,但能源控制逻辑电路340仍然持续监控USE信号335以决定是否能源消耗将开始再一次超过所选择的临界值。可能会发生两种情形,不同种类的指令互相冲突或是能源特性数据改变至另一个具有较低临界值的能源特性数据。以表五中一个能源特性数据PRESENTATION模式为例,该能源特性数据具有15瓦的临界值。由于现在选定的15瓦临界值,所以先前描述交流主电源模式的18瓦临界值已经减少了。因此,如果能源使用估计逻辑电路325经由USE总线回送一目前能源消耗总值假设为16瓦,则能源控制逻辑电路340比较出目前的16瓦已然超过15瓦的临界值,因而进一步的能源消减动作是必需的。
在此事件下,能源控制逻辑电路340送出一指令至L2高速缓存EN/DIS控制单元376告知禁止高速缓存单元315中的L2高速缓存。更具体地说,参考图5中L2高速缓存EN/DIS控制器那行,能源控制逻辑电路340送出一指令信号,具有一地址0011以及一指令00,其中0011是相对应于L2高速缓存EN/DIS控制单元376的地址。L2高速缓存EN/DIS控制单元376确认0011地址是自己的并且需要它执行指令中00的动作,而这动作便是由允许的状态变成禁止的状态,即是由消耗大量的能源变成消耗较少或是最小的能源。
在此时,注意到能源供应已经减少、时钟频率也降低以及L1高速缓存也已经禁止了。为了说明目的,假设能源控制逻辑电路340发现即使进行四个上述的能源消减动作,依然超过所选择的PRESENTATION模式的能源特性数据的临界值15瓦,使得进一步能源消减动作是必需的。为了响应这发现,能源控制逻辑电路340采取进一步动作,送出一指令至分支预测EN/DIS控制单元378告知禁止分支预测单元320。更具体地说,参考图5中分支预测单元控制单元那行,能源控制逻辑电路340送出一指令信号,具有一地址0100以及一指令00,其中0100是相对应于分支预测单元控制单元378的地址。分支预测单元控制单元378确认0100地址是自己的并且需要它执行指令中00的动作,而这动作便是由允许的状态变成禁止的状态,即是由消耗大量的能源变成消耗较少或是最小的能源。
能源控制逻辑电路340一再比较且总算寻找到减少能源后,一新的目前能源消耗总值为14瓦低于所选择的临界值15瓦了。因此,能源控制逻辑电路340此刻不需再进行能源消减动作,但是仍需要持续监控能源消耗是否继续小于所选择的临界值。
除了上述所提到的能源消减模式外,若需要进一步的能源消减,能源控制逻辑电路340也可以控制其它的功能性单元301-306、315以及320。举例来说,能源控制逻辑电路340可以指示可变速率配给器380指挥执行单元305以一较低的速率执行指令,如:每两个频率周期执行一次而非每个频率周期,或是每三个频率周期、每四个频率周期。为了减少能源消耗,能源控制逻辑电路340也可以指挥多媒体延伸单元EN/DIS控制单元384以禁止该多媒体延伸单元。能源消耗控制单元345包含“其它控制单元”386使得在图3中未描绘出的其它功能性单元以及组件可以被控制以减少能源消耗。举例来说,“其它控制单元”386也许可以在一个极小的微处理器中用以禁止一记录缓存器且只占用一个临时文件,使得该微处理器在此省电模式下转换为依序执行各个指令。
请参阅图6,图6显示当图3的微处理器300进行节省能源动作时的示范性流程图。微处理器300于步骤600时初始化,此时所有的功能性单元皆被允许,能源控制逻辑电路340送出一系列的指令以指示功能性单元,这些指令都具有相对应的单元的地址以及一图5中的指令01。在此方法中,每一个功能性单元皆获知将为了微处理器的运行而允许,流程进行至步骤605。
于步骤605中,选择一能源特性数据,能源特性数据可以储存在微处理器300中,也可以经由通讯装置提供,如:内存、串行端口、外部接脚、JTAG输入等等。流程进行至步骤610。
于步骤610中,能源特性数据提供给能源控制逻辑电路340。更具体地说,根据所选择的能源特性数据将临界值提供给能源控制逻辑电路340,此临界值即是所选择的临界值。流程进行至步骤615。
于步骤615中,能源使用估计逻辑电路325在每个功能性单元的输出端读取活动信号,确定它们的活动以及能源的消耗。因为微处理器才刚初始化,所以全部的功能性单元会全被允许,所以活动输出都将显示活动。流程进行至步骤620。
于步骤620中,能源使用估计逻辑电路325根据每一个功能性单元产生的活动信号估计一个预先决定的能源消耗,表一的对照表就是一个例子。流程进行至步骤625。
于步骤625中,能源使用估计逻辑电路325将所有检索的能源消耗数值加总以决定一目前能源消耗总值。流程进行至步骤630。
于步骤630中,该目前能源消耗总值提供于USE总线335上,当作USE信号送至能源控制逻辑电路340。流程进行至步骤635。
于步骤635中,能源控制逻辑电路340将目前能源消耗总值与目前所选择的临界值作比较。如果能源控制逻辑电路340确定目前能源消耗总值超出目前所选择的临界值,则进行步骤640;如果没有超出,则进行步骤645。
于步骤640中,能源控制逻辑电路340送出指令至某一个控制器374、376、378、380、382以及384中,指示该控制器指挥它所控制的功能性单元减少能源消耗。能源消减动作也可以经由其它的能源消减模式,如:能源控制逻辑电路340送出指令至能源供应控制单元370以指示减少电压供应给微处理器,送出指令至可变时钟频率控制单元372以指示降低微处理器的时钟频率。流程进行至步骤635。
需要注意的是,在步骤635中,将持续禁止额外的功能性单元或是从事能源消减模式,直到目前能源消耗总值不再超过所选择的临界值。
一、微处理器300在所选择的能源特性数据的限制之下,能以最大效能运行;二、微处理器所执行的指令也许会随着时间改变,使得功能性单元的能源特性数据也会跟着改变;三、转换不同的能源特性数据或是从事较多或较少限制的能源消耗。基于上述三个理由,决策步骤645判断是否目前总能源消耗值持续低于所选择的临界值超过一段时间T,如:1分钟。如果是,则流程进行至步骤650,若否,则流程进行至步骤655。
于至步骤650中,先前被禁止的功能性单元会再重新允许,或是停止先前从事的能源消减模式。为了达到此功能,能源控制逻辑电路340送出指令至能源消耗控制器345中的控制器,指令包含控制器的地址以及对功能性单元的指示,用以造成功能性单元允许,或是停止进行其它的能源管理模式。流程进行至步骤655。
于步骤655中,处理一测试用以决定能源特性数据是否改变。如果能源特性数据并未改变则流程将会进行至步骤615,步骤615中能源使用估计逻辑电路325由每个功能性单元读取活动信号,这之前已经讨论过。继续流程与之前相同,能源控制逻辑电路340一再地估计是否目前总能源消耗会超过所选择的临界值。但是,如果在决策步骤655中认定能源特性数据改变了,则流程将会进行至步骤610,新选择的能源特性数据提供给能源控制逻辑电路340供未来使用。继续流程与之前相同,能源控制逻辑电路340一再地估计是否目前总能源消耗会超过新选择的临界值。
本发明所揭示的微处理器机制的优势为可根据一特定的能源特性数据以控制本身的效率以及能源消耗。微处理器检查本身内部的能源消耗与控制本身的功能性单元可当作是选择的能源特性数据与聚集个别功能性单元之能源消耗的函数。
虽然本发明与其对象、技术特征以及优点详细叙述如上,其它的实施例也包含于本发明中。但是,除了利用硬件实现本发明之外,也可以利用计算机可读程序代码具体化本发明并且储存于计算机可读媒体中。程序代码也可使得本发明所举出的实施例加以实行,如本发明的功能、制造、模块化、仿真以及测试。举例来说,可以借助撰写计算机可读程序代码来具体化本发明。而广泛的程序语言格式有C、C++、GDIS II以及硬件描述语言(HDL),硬件描述语言包含Verlilog HDL、VHDL以及AHDL等等,或是其它数据库、程序化电路捕捉工具都是可利用的。程序代码可以置于任何已知的计算机储存装置,包含半导体内存、磁盘、光盘片(如:CD-ROM、DVD-ROM等等)。程序代码也可作为计算机数据信号,具体实现于计算机传输媒介(如:载波或是任何包含数字、模拟以及光纤媒介),因此程序代码可以借助因特网以及区城网络等通讯网路传递。另外,本发明已完成的功能以及架构可以用程序代码(如:HDL、GDSII等等)具体化,也可以转换成硬件为集成电路的一部份,更可以是硬件与程序代码的组合。
虽然本发明已以一较佳实施例揭示如上,然而其并非用以限定本发明,任何本领域的普通技术人员,在不脱离本发明的精神和范围内,可作一些的更动与润饰。
Claims (10)
1、一种管理微处理器能源消耗的装置,其中该装置包括:
多个功能性单元,每一该功能性单元包含多个相对应的活动输出,当每一该功能性单元允许时,相对应的这些活动输出将指示动作;
一能源使用估计逻辑电路,耦合至这些活动输出,用以估计目前的活动以决定微处理器一目前能源总消耗值;
一能源控制逻辑电路,耦合至该能源使用估计逻辑电路,用以将该目前能源总消耗值与一能源临界值作比较,其中该能源临界值包含于一能源特性数据中;以及
一能源消耗控制器,耦合至该能源控制逻辑电路以及这些功能性单元,当该目前能源总消耗值超过该能源临界值时,用以操作多个能源消减模式的其中一个。
2、如权利要求1所述的装置,其特征在于所述这些功能性单元中包括:一高速缓存,而这些能源消减模式的其中一个则是用以禁止该高速缓存;一分支预测单元,而这些能源消减模式的其中一个则是用以禁止该分支预测单元;一浮点运算单元,而这些能源消减模式的其中一个则是用以禁止该浮点数单元;一多媒体延伸单元,而这些能源消减模式的其中一个则是用以禁止该多媒体延伸单元;一执行单元,而这些能源消减模式的其中一个则是用以借助减少一指令比率来控制该执行单元的能源消耗。
3、如权利要求1所述的装置,其特征在于该装置还包含:一预定频率的频率产生器耦合至这些功能性单元,而这些能源消减模式的其中一个模式包含降低该频率产生器的频率;以及一电压源控制器用以控制每一该功能性单元的电压提供,而这些能源消减模式的其中一个模式包含减少每一该电压提供。
4、一种微处理器能源管理系统,其中包括:
多个功能性单元,每一该功能性单元包含一活动输出,用以指示相对应的功能性单元是否被允许;
一能源管理逻辑电路,耦合至每一该功能性单元的活动输出,用以估计每一该功能性单元的活动以决定微处理器一目前能源总消耗值;以及
一能源消耗控制器,耦合至该能源管理逻辑电路以及这些功能性单元,当该目前能源总消耗值超过该能源临界值时用以禁止或减少至少一个该功能性单元的能源消耗。
5、如权利要求4所述的微处理器能源管理系统,其特征在于还包含一控制总线耦合于该能源管理逻辑电路与该能源消耗控制器之间。
6、如权利要求4所述的微处理器能源管理系统,其特征在于当该目前能源总消耗值超过该能源临界值时,该能源控制逻辑电路将送出一命令至该控制总线以指示该能源消耗控制器禁止一第一功能性单元,并且当该目前能源总消耗值超过该能源临界值时,该能源控制逻辑电路将送出一命令至该控制总线以指示该能源消耗控制器禁止至少一个功能性单元。
7、如权利要求4所述的微处理器能源管理系统,其特征在于该能源管理逻辑电路包含一能源使用估计逻辑电路用以处理各别活动输出信号以决定该目前能源总消耗值。
8、一种用于管理一微处理器能源消耗的方法,其中该微处理器包含多个功能性单元,该方法包括:
指定一能源特性数据予该微处理器,该能源特性数据具有一能源临界值;
估计每一该功能性单元的活动以决定微处理器一目前能源总消耗值;以及
当该目前能源总消耗值超过该能源临界值时,操作多个能源消减模式的其中一个模式。
9、如权利要求8所述的方法,其特征在于这些能源消减模式包含禁止一第一功能性单元,该第一功能性单元属于这些功能性单元,并且该第一功能性单元为下列任一单元即高速缓存、分支预测单元、浮点运算单元、多媒体延伸单元中的一种。
10、如权利要求8所述的方法,其特征在于多个能源消减模式包含:减少至少一个功能性单元的一指令比率;降低该微处理器的一中心频率;以及减少一内部电压提供,由一第一电压调降至一第二电压。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/646,988 | 2003-08-22 | ||
US10/646,988 US20050044429A1 (en) | 2003-08-22 | 2003-08-22 | Resource utilization mechanism for microprocessor power management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1523473A true CN1523473A (zh) | 2004-08-25 |
Family
ID=34194627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200410031313XA Pending CN1523473A (zh) | 2003-08-22 | 2004-03-26 | 一种用于管理微处理器能源消耗的装置及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20050044429A1 (zh) |
CN (1) | CN1523473A (zh) |
TW (1) | TW200508975A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006056824A2 (en) * | 2004-09-10 | 2006-06-01 | Freescale Semiconductor, Inc. | Apparatus and method for controlling voltage and frequency |
CN101030095B (zh) * | 2006-03-02 | 2010-04-14 | 联想(新加坡)私人有限公司 | 发热量的控制方法以及计算机 |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7814350B2 (en) * | 2002-10-03 | 2010-10-12 | Via Technologies, Inc. | Microprocessor with improved thermal monitoring and protection mechanism |
US7302599B2 (en) | 2004-02-12 | 2007-11-27 | Via Technologies, Inc. | Instantaneous frequency-based microprocessor power management |
US7770042B2 (en) * | 2002-10-03 | 2010-08-03 | Via Technologies, Inc. | Microprocessor with improved performance during P-state transitions |
US7698583B2 (en) | 2002-10-03 | 2010-04-13 | Via Technologies, Inc. | Microprocessor capable of dynamically reducing its power consumption in response to varying operating temperature |
US7774627B2 (en) * | 2002-10-03 | 2010-08-10 | Via Technologies, Inc. | Microprocessor capable of dynamically increasing its performance in response to varying operating temperature |
TWI227398B (en) * | 2003-04-15 | 2005-02-01 | Asustek Comp Inc | Automatic adjusting device of computer system performance |
US7808895B2 (en) * | 2003-10-30 | 2010-10-05 | Intel Corporation | Isochronous device communication management |
US7334418B2 (en) * | 2004-02-12 | 2008-02-26 | Via Technologies, Inc. | Method and apparatus for microprocessor temperature control |
US7664970B2 (en) | 2005-12-30 | 2010-02-16 | Intel Corporation | Method and apparatus for a zero voltage processor sleep state |
TWI261164B (en) * | 2004-09-03 | 2006-09-01 | Benq Corp | Data processing system and method that can reduce power consumption |
JP3914230B2 (ja) * | 2004-11-04 | 2007-05-16 | 株式会社東芝 | プロセッサシステム及びその制御方法 |
US7536567B2 (en) * | 2004-12-10 | 2009-05-19 | Hewlett-Packard Development Company, L.P. | BIOS-based systems and methods of processor power management |
US20060129856A1 (en) * | 2004-12-10 | 2006-06-15 | Main Kevin K | System and method for expansion card power limiting |
JP2006178854A (ja) * | 2004-12-24 | 2006-07-06 | Toshiba Corp | 電子回路 |
EP1880292A4 (en) * | 2005-04-29 | 2011-04-20 | Fat Spaniel Technologies Inc | COMPUTER-IMPLEMENTED SYSTEMS AND METHODS FOR PROVIDING PRIORITY SERVICE AND IMPROVED UTILIZATION OF SERVICE RESOURCES |
US7624221B1 (en) * | 2005-08-01 | 2009-11-24 | Nvidia Corporation | Control device for data stream optimizations in a link interface |
US7337339B1 (en) * | 2005-09-15 | 2008-02-26 | Azul Systems, Inc. | Multi-level power monitoring, filtering and throttling at local blocks and globally |
US7562191B2 (en) * | 2005-11-15 | 2009-07-14 | Mips Technologies, Inc. | Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme |
US7496771B2 (en) * | 2005-11-15 | 2009-02-24 | Mips Technologies, Inc. | Processor accessing a scratch pad on-demand to reduce power consumption |
US7873820B2 (en) * | 2005-11-15 | 2011-01-18 | Mips Technologies, Inc. | Processor utilizing a loop buffer to reduce power consumption |
US7925899B2 (en) * | 2005-12-29 | 2011-04-12 | Intel Corporation | Method, system, and apparatus for runtime power estimation |
US7562245B1 (en) | 2006-06-09 | 2009-07-14 | Vivante Corporation | Single chip 3D and 2D graphics processor with embedded memory and multiple levels of power controls |
DE102006046184B4 (de) * | 2006-09-29 | 2009-01-02 | Infineon Technologies Ag | Verfahren, Vorrichtung und Computerprogrammprodukt zur Ermittlung einer voraussichtlichen Überschreitung einer maximal erlaubten Leistungsaufnahme eines mobilen elektronischen Geräts und mobiles elektronisches Gerät |
US8060765B1 (en) * | 2006-11-02 | 2011-11-15 | Nvidia Corporation | Power estimation based on block activity |
US20080184047A1 (en) * | 2007-01-25 | 2008-07-31 | Goeltzenleuchter Courtney D | System and method for implementing a quiet operating mode in a computing system |
US7900069B2 (en) * | 2007-03-29 | 2011-03-01 | Intel Corporation | Dynamic power reduction |
KR101423330B1 (ko) * | 2007-06-29 | 2014-07-24 | 비반테 코포레이션 | 내장 메모리와 멀티 레벨 전력 컨트롤을 갖춘 단일 칩삼차원 및 이차원 그래픽 프로세서 |
US8527789B2 (en) * | 2007-08-13 | 2013-09-03 | Dell Products, Lp | System and method of modifying power use within an information handling system |
US8302098B2 (en) * | 2007-12-06 | 2012-10-30 | Oracle America, Inc. | Hardware utilization-aware thread management in multithreaded computer systems |
JP4973490B2 (ja) * | 2007-12-26 | 2012-07-11 | 富士通株式会社 | 消費電力監視プログラム |
US20090273239A1 (en) * | 2008-05-02 | 2009-11-05 | Goodnow Kenneth J | Semiconductor power distribution and control systems and methods |
US20090276644A1 (en) * | 2008-05-02 | 2009-11-05 | Goodnow Kenneth J | Structure for semiconductor power distribution and control |
US9009498B1 (en) | 2008-08-14 | 2015-04-14 | Hewlett-Packard Development Company, L.P. | Estimating power consumption for a target host |
US8386816B2 (en) * | 2008-10-30 | 2013-02-26 | Nokia Corporation | Methods, apparatuses, and computer program products for reducing power consumption in computing devices |
US8214663B2 (en) * | 2009-04-15 | 2012-07-03 | International Business Machines Corporation | Using power proxies combined with on-chip actuators to meet a defined power target |
US8103894B2 (en) * | 2009-04-24 | 2012-01-24 | International Business Machines Corporation | Power conservation in vertically-striped NUCA caches |
WO2011027510A1 (ja) * | 2009-09-02 | 2011-03-10 | 日本電気株式会社 | 半導体集積回路装置および半導体集積回路装置の制御方法、ならびに、キャッシュ装置 |
US8429433B2 (en) * | 2010-01-15 | 2013-04-23 | International Business Machines Corporation | Dynamically adjusting an operating state of a data processing system running under a power cap |
JP5487994B2 (ja) * | 2010-01-25 | 2014-05-14 | ソニー株式会社 | 電力管理装置、及び表示方法 |
JP2011155712A (ja) * | 2010-01-25 | 2011-08-11 | Sony Corp | 電子機器、電力管理装置、及び機器特定方法 |
TWI401611B (zh) * | 2010-05-26 | 2013-07-11 | Univ Yuan Ze | 混合能源發電系統的裝置容量配置方法 |
GB2480847B (en) * | 2010-06-03 | 2014-12-10 | St Microelectronics Res & Dev | Remote testing system |
US9092219B2 (en) * | 2010-11-02 | 2015-07-28 | Advanced Micro Devices, Inc. | Method and system of sampling to automatically scale digital power estimates with frequency |
US8612801B2 (en) | 2011-01-25 | 2013-12-17 | Dell Products, Lp | System and method for extending system uptime while running on backup power |
US20130086395A1 (en) * | 2011-09-30 | 2013-04-04 | Qualcomm Incorporated | Multi-Core Microprocessor Reliability Optimization |
US8924758B2 (en) | 2011-12-13 | 2014-12-30 | Advanced Micro Devices, Inc. | Method for SOC performance and power optimization |
WO2013100999A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Enabling and disabling a second jump execution unit for branch misprediction |
US9442732B2 (en) * | 2012-03-19 | 2016-09-13 | Via Technologies, Inc. | Running state power saving via reduced instructions per clock operation |
US9075595B2 (en) * | 2012-08-30 | 2015-07-07 | Dell Products L.P. | Power excursion warning system |
US8996902B2 (en) | 2012-10-23 | 2015-03-31 | Qualcomm Incorporated | Modal workload scheduling in a heterogeneous multi-processor system on a chip |
US9395795B2 (en) * | 2013-09-20 | 2016-07-19 | Apple Inc. | System power management using communication bus protocols |
US9323525B2 (en) * | 2014-02-26 | 2016-04-26 | Intel Corporation | Monitoring vector lane duty cycle for dynamic optimization |
US10223123B1 (en) * | 2016-04-20 | 2019-03-05 | Apple Inc. | Methods for partially saving a branch predictor state |
US10895903B2 (en) | 2018-06-02 | 2021-01-19 | Apple Inc. | Package power zone for limiting power consumption even when individual consumers do not exceed individual limits |
US11983536B1 (en) * | 2022-10-26 | 2024-05-14 | Nvidia Corporation | Instruction prefetch based power control |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396635A (en) * | 1990-06-01 | 1995-03-07 | Vadem Corporation | Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system |
US5452277A (en) * | 1993-12-30 | 1995-09-19 | International Business Machines Corporation | Adaptive system for optimizing disk drive power consumption |
US5752011A (en) * | 1994-06-20 | 1998-05-12 | Thomas; C. Douglas | Method and system for controlling a processor's clock frequency in accordance with the processor's temperature |
US5557557A (en) * | 1994-10-04 | 1996-09-17 | Texas Instruments Incorporated | Processor power profiler |
US5719800A (en) * | 1995-06-30 | 1998-02-17 | Intel Corporation | Performance throttling to reduce IC power consumption |
US5996083A (en) * | 1995-08-11 | 1999-11-30 | Hewlett-Packard Company | Microprocessor having software controllable power consumption |
US5815724A (en) * | 1996-03-29 | 1998-09-29 | Intel Corporation | Method and apparatus for controlling power consumption in a microprocessor |
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 |
US6535798B1 (en) * | 1998-12-03 | 2003-03-18 | Intel Corporation | Thermal management in a system |
US6367023B2 (en) * | 1998-12-23 | 2002-04-02 | Intel Corporation | Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system |
JP2000357951A (ja) * | 1999-06-15 | 2000-12-26 | Mitsubishi Electric Corp | 遅延回路、クロック生成回路及び位相同期回路 |
JP2001255958A (ja) * | 2000-03-10 | 2001-09-21 | Konica Corp | クロック発生装置、基板および画像形成装置ならびにクロック発生方法 |
US6754837B1 (en) * | 2000-07-17 | 2004-06-22 | Advanced Micro Devices, Inc. | Programmable stabilization interval for internal stop grant state during which core logic is supplied with clocks and power to minimize stabilization delay |
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 |
KR100369463B1 (ko) * | 2000-12-21 | 2003-01-24 | 엘지전자 주식회사 | 휴대용 컴퓨터에서의 호스트 버스 클럭 가변 제어방법 |
US6829713B2 (en) * | 2000-12-30 | 2004-12-07 | Intel Corporation | CPU power management based on utilization with lowest performance mode at the mid-utilization range |
EP1235274A1 (de) * | 2001-02-15 | 2002-08-28 | Matthias Seesemann | Temperatur-Überwachungsvorrichtung für Mikroprozessor-Kühleinrichtungen |
US6836849B2 (en) * | 2001-04-05 | 2004-12-28 | International Business Machines Corporation | Method and apparatus for controlling power and performance in a multiprocessing system according to customer level operational requirements |
US6948082B2 (en) * | 2002-05-17 | 2005-09-20 | International Business Machines Corporation | Method and apparatus for software-assisted thermal management for electronic systems |
KR20040000644A (ko) * | 2002-06-22 | 2004-01-07 | 삼성전자주식회사 | 소비 전력 저감 장치 및 방법 |
US7290156B2 (en) * | 2003-12-17 | 2007-10-30 | Via Technologies, Inc. | Frequency-voltage mechanism for microprocessor power management |
US7302599B2 (en) * | 2004-02-12 | 2007-11-27 | Via Technologies, Inc. | Instantaneous frequency-based microprocessor power management |
TW553425U (en) * | 2002-10-09 | 2003-09-11 | Rung-Yi Chen | Computer peripheral device having temperature control and wind speed adjusting function |
US7017061B2 (en) * | 2003-05-21 | 2006-03-21 | Dell Products L.P. | Method and system for dynamically adjusting power consumption of an information handling system |
US7019577B2 (en) * | 2003-07-29 | 2006-03-28 | Lattice Semiconductor Corporation | Clock generator |
US7290155B2 (en) * | 2003-10-28 | 2007-10-30 | Intel Corporation | Method, system, and apparatus for dynamically configuring the operating point utilized for thermal management of an integrated circuit |
US7334418B2 (en) * | 2004-02-12 | 2008-02-26 | Via Technologies, Inc. | Method and apparatus for microprocessor temperature control |
-
2003
- 2003-08-22 US US10/646,988 patent/US20050044429A1/en not_active Abandoned
-
2004
- 2004-03-12 TW TW093106586A patent/TW200508975A/zh unknown
- 2004-03-26 CN CNA200410031313XA patent/CN1523473A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006056824A2 (en) * | 2004-09-10 | 2006-06-01 | Freescale Semiconductor, Inc. | Apparatus and method for controlling voltage and frequency |
WO2006056824A3 (en) * | 2004-09-10 | 2006-07-27 | Freescale Semiconductor Inc | Apparatus and method for controlling voltage and frequency |
CN101030095B (zh) * | 2006-03-02 | 2010-04-14 | 联想(新加坡)私人有限公司 | 发热量的控制方法以及计算机 |
Also Published As
Publication number | Publication date |
---|---|
TW200508975A (en) | 2005-03-01 |
US20050044429A1 (en) | 2005-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1523473A (zh) | 一种用于管理微处理器能源消耗的装置及方法 | |
AU2007227679B2 (en) | Adaptive power management | |
US8171319B2 (en) | Managing processor power-performance states | |
KR101173730B1 (ko) | 동적 전력 감소 | |
US9235252B2 (en) | Dynamic balancing of power across a plurality of processor domains according to power policy control bias | |
US7818596B2 (en) | Method and apparatus of power management of processor | |
US6259172B1 (en) | Cooling fan controlling apparatus for computer | |
TWI416311B (zh) | 處理器電力管理方法與裝置 | |
US8892916B2 (en) | Dynamic core pool management | |
CN1881140A (zh) | 多核处理器的处理器模式自动控制装置及其方法 | |
US9256271B2 (en) | Predictive power management based on user category | |
KR20160102460A (ko) | 멀티-코어 동적 작업부하 관리 | |
WO2013090627A1 (en) | User level control of power management policies | |
KR20150063543A (ko) | 프로세서의 구성가능한 피크 성능 제한들의 제어 | |
US20090210741A1 (en) | Information processing apparatus and information processing method | |
EP3072029A1 (en) | System and method for operating frequency adjustment and workload scheduling in a system on a chip | |
Li et al. | Enhanced parallel application scheduling algorithm with energy consumption constraint in heterogeneous distributed systems | |
WO2008073597A1 (en) | Method and apparatus of power management of processor | |
CN1313558A (zh) | 在数据处理系统中基于所需电池寿命的计算机电源管理 | |
Wu et al. | Energy-efficient task allocation for VFI-based real-time multi-core systems | |
Chen et al. | Platform synthesis and partitioning of real-time tasks for energy efficiency | |
Shalan et al. | Online power management using DVFS for RTOS | |
Tianzhou et al. | Balance the battery life and real-time issues for portable real-time embedded system by applying DVS with battery model |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20040825 |