微处理器、操作微处理器的方法以及计算机程序产品的制作方法

文档序号:6427691阅读:111来源:国知局
专利名称:微处理器、操作微处理器的方法以及计算机程序产品的制作方法
技术领域
本发明涉及微处理器的电源管理,特别涉及多内核微处理器的电源管理。
背景技术
在2009年3月12日公开的美国专利应用公开第12/403,195 (CNTR. 2475)号,公开一适应性的功率调节特性用以当于一时间间距T低于一最大功耗P时,提供用户最佳效能。P与T值一般由结合一包括适应性的功率调节特性的微处理器的系统的制造商指定。 微处理器知道其可在耗损不超过P瓦特的一频率Xp上操作(在一实施例中,操作点Xp的频率对应至一 P状态,作为P0)。然而,在多数T的子区间上(此为时间分格),微处理器计算最近T时间的平均功耗A以及比较A与P。如果A足够地低于P (也就是微处理器具有功率“评价值”),微处理器可自行决定于高于Xp的一频率上运作。单一微处理器组件上的双内核介绍功率调节特性或功率评价值。这是由于系统制造商强加P与T需求在微处理器组件基底上,而非在每一内核上。然而,独立内核可能在一给定时间间距T中耗损不同功率。首先,操作系统独立改变每一内核的操作点(如P状态与C状态)使得内核消耗不同功率。再者,软件工作量在两个内核上可能不相同。此外,独立内核可能在真实时间的不同时间点到达其时间分格区间。对整体来说,P与T需求还是必须满足微处理器组件。

发明内容
本发明提供一种微处理器,用以在具有存储器的一系统中运作。微处理器包括多个处理内核,其中处理内核的每一处理内核(processing core)用以当检测到一电源事件发生时,计算一第一值,其中第一值代表处理内核在电源事件的一时间间距中所消耗的能量值,其中时间间距的长度为一既定时间值;从存储器中读取一或多个第二值,其中或第二值代表在时间间距中由处理内核的其他者所消耗的能量值,其中或第二值已预先由处理内核的其他者计算出以及写入至存储器;以及根据第一值与或第二值调整处理内核的操作频率。本发明提供一种操作微处理器的方法,在具有一存储器的一系统中包括多个处理内核,其中存储器可被处理内核存取,方法包括当检测到一电源事件发生时,通过处理内核的一处理内核计算一第一值,其中第一值代表处理内核在电源事件的一时间间距中所消耗的能量值,其中时间间距的长度为一既定时间值;通过处理内核从存储器中读取一或多个第二值,其中或第二值代表在时间间距中由处理内核的其他者所消耗的能量值,其中或第二值已预先由处理内核的其他者计算出以及写入至存储器;以及通过处理内核根据第一值与或第二值调整处理内核的操作频率。本发明提供一种计算机程序产品,在计算机装置中嵌入可用的一至少计算机可读存储介质。计算机程序产品包括在计算机可读存储介质中嵌入计算机可读程序代码。在计算机可读存储介质中嵌入计算机可读程序代码,用以指定一微处理器用以在具有一存储器的一系统中操作,计算机可读程序代码包括指定多个处理内核的程序代码,其中多个处理内核的每一处理内核用以当检测到一电源事件发生时,计算一第一值,其中第一值代表处理内核在电源事件的一时间间距中所消耗的能量值,其中时间间距的长度为一既定时间值;从存储器中读取一或多个第二值,其中或第二值代表在时间间距中由处理内核的其他者所消耗的能量值,其中或第二值已预先由处理内核的其他者计算出以及写入至存储器; 以及根据第一值与或第二值调整处理内核的操作频率。本发明提供一种微处理器,包括一输入端以及多个处理内核。输入端用以接收一外部电源施加在微处理器的瞬间功率大小的一指标。多个处理内核中每一处理内核用以 接收来自输入端的指标以及判定于一前段周期中由微处理器所消耗的能量值,其中前段周期为一既定时间长度;以及操作处理内核于高于一既定频率的一频率,以响应于前段周期中判定的由微处理器所消耗的能量值低于一既定能量值。本发明提供一种操作微处理器的方法,包括通过一输入端上的微处理器接收一外部电源施加在微处理器的瞬间功率大小的一指标;通过微处理器的每一处理内核,根据指标判定于前段周期中由微处理器所消耗的能量值,其中周期为一既定时间长度;以及操作处理内核于高于一既定频率的一频率,以响应于前段周期中判定的由微处理器所消耗所的能量值低于一既定能量值。本发明提供一种计算机程序产品,在计算机装置中嵌入可用的一至少计算机可读存储介质。计算机程序产品包括在计算机可读存储介质中嵌入计算机可读程序代码,用以指定一微处理器用以在具有一存储器的一系统中操作。计算机可读程序代码包括一第一程序代码以及一第二程序代码。第一程序代码,指定一输入端,用以接收一外部电源施加在微处理器的瞬间功率大小的一指标。第二程序代码,指定多个处理内核,其中每一处理内核用以接收来自输入端的指标以及判定于前段周期中由微处理器所消耗的能量值,其中周期为一既定时间长度;以及操作处理内核于高于一既定频率的一频率,以响应于前段周期中判定的由微处理器消耗所的能量值低于一既定能量值。本发明提供一种微处理器,包括多个处理内核,其中每一处理内核用以在每一接续的当时情况下,判定于当时情况之前的一周期中,由微处理器消耗的能量值,其中周期为一既定时间长度;以及操作处理内核在高于一既定频率的一频率下,以响应于当时情况之前的周期中,由微处理器消耗的能量值低于一既定能量值的判定。其中,微处理器用以致使所有处理内核同时操作在高于既定频率的频率下,直到处理内核中的一个判定微处理器于当时情况之前的周期中已经消耗多于既定能量值的能量。本发明提供一种操作微处理器的方法包括通过每一多个处理内核在每一接续的当时情况下,判定于当时情况之前的一周期中,由微处理器消耗的能量值,其中周期为一既定时间长度;以及操作处理内核在高于一既定频率的一频率下,以响应于当时情况之前的周期中,由微处理器消耗的能量值低于一既定能量值的判定。其中,微处理器用以致使所有处理内核同时操作在高于既定频率的频率下,直到处理内核中的一个判定微处理器于当时情况之前的周期中已经消耗多于既定能量值的能量。本发明提供一种计算机程序产品,在计算机装置中嵌入可用的一至少计算机可读存储介质,计算机程序产品包括在计算机可读存储介质中嵌入计算机可读程序代码,用以指定一微处理器用以在具有一存储器的一系统中操作。计算机可读程序代码包括指定多个处理内核的程序代码,其中每一处理内核用以在每一接续的当时情况下,判定于当时情况之前的一周期中,由微处理器消耗的能量值,其中周期为一既定时间长度;以及操作处理内核在高于一既定频率的一频率下,以响应于当时情况之前的周期中,由微处理器消耗的能量值低于一既定能量值的判定;其中,微处理器可致使所有处理内核同时操作在高于既定频率的频率下,直到处理内核中的一个判定微处理器于当时情况之前的周期中已经消耗多于既定能量值的能量。


图1是本发明描述的一种计算机系统的方块图;图2是图1的计算机系统的存储器中的功率信息共享区域的方块图;图3是根据本发明的图1的组件所实施的操作流程图;图4是根据本发明的图1计算机系统所实施的操作流程图;图5A以及图5B是根据本发明的图1计算机系统所实施的操作流程图;图6是根据本发明的图1计算机系统执行副程序Z的操作流程图;图7是根据本发明的图1计算机系统执行副程序V的操作流程图;图8是根据本发明的图1计算机系统执行副程序X的操作流程图;图9是根据本发明的图1计算机系统执行副程序W的操作流程图;图10是根据本发明的图1计算机系统执行副程序Y的操作流程图;图11是本发明另一实施例的包括一双内核微处理器组件的一计算机系统的方块图;图12是根据本发明的图11计算机系统所实施的操作流程图;图13是根据本发明的图11计算机系统所实施的操作流程图;图14是根据本发明的图11计算机系统执行副程序Z的操作流程图;图15是根据本发明的图11计算机系统执行副程序V的操作流程图;图16是根据本发明的图11计算机系统执行副程序X的操作流程图;图17是根据本发明的图1计算机系统执行副程序Y的操作流程图;图18是本发明另一实施例的包括一双内核微处理器组件的一计算机系统100的方块图。主要元件符号说明100 计算机系统108 电压调节模块158 VID 信号156 VCORE 信号104A 内核 0104B 内核 1102 组件129 功率评价值暂存器126 锁相回路1 温度传感器
13
127 -微码
124 -常驻计时器
122 -总线时钟计时器
146 -总线时钟
154 -总线
106 -存储器
138 -功率信息共享区域(PISA)
132AU32B 功率信息
114 -动态能量
116 "漏损言糧
202 -SMM存储器空间
1102 放大器
1152 VINSTCUR信号
1104 模拟乘法器
1154 VINSTPffR信号
1144 能量监视器
1162 PKGENERGY信号
具体实施例方式下面描述在一多内核组件执行功率评价值(power credit)特性的实施例。根据一实施例,内核共享信息使得其中一内核可对整个组件执行功率评价值(power credit)运算。当一内核判定该必需组件宽带(package-wide)功率评价值(power credit)不可用时, 该内核转换至一较低功率P状态以确保可满足组件宽带(Package-Wide)P与T。仔细而言, 内核操作于Xp或低于Xp以确保可满足组件宽带(Package-Wide)P与T,其中Xp为微处理器的所有内核在该既定时间值T可在该微处理器消耗不超过一既定能量值的情况下的一频率,该既定能量值为P瓦特与T秒的乘积,Xp为系统软件要求该内核操作的最高频率,在某些系统中通常为P状态P0。在一实施例中,两个内核通过存储器共享功率评价值(power credit)信息。在一实施例中,使用SMM存储器中的区域。BIOS写入该区域的基底地址(base address)至每一内核的MSR。内核每经历一次既定列表中的一事件(如频率/电压转换、进入/离开休眠状态、计时器更新平均内核功率等),即更新功率评价值(power credit)信息至共享存储器区域。图1是本发明描述的一种计算机系统100的方块图,计算机系统100包括双内核微处理器组件102,组件102包括功率评价值(power credit)特性。组件102包括两内核 内核0104A与内核1104B。虽然图1的实施例包含两个内核,本发明的实施例也可应用多内核的功率评价值(power credit)特性。除了双内核微处理器组件102,计算机系统100还包括电压调节模块108 (VRM)耦接至组件102。电压调节模块108通过VCORE信号156提供电源至组件102。组件102提供VID信号158至电压调节模块108用以控制电压电平,该电压电平为电压调节模块108提供VCORE信号156至组件102。计算机系统100也包括存储器106通过处理器总线巧4耦接至组件102。一般而言,存储器控制器(未标明)如芯片组的北桥,放置在存储器106与处理器总线巧4之间。通过系统软件配置存储器的一区域如BIOS或操作系统,作为功率信息共享区域(PISA) 138。 功率信息共享区域138包括内核0104A分享给内核1104B的功率信息132A,以及内核1104B 分享给内核0104A的功率信息132B。每一内核104功率信息132包括一动态能量114值, 其用以代表在最近时间间距T内核104各自消耗的动态能量值,以及一漏损能量116值,其用以代表在最近时间间距T内核104各自消耗的漏损能量值。在一实施例中,每一内核104 功率信息132也包括一动态功率常数,其用以计算内核104各自的动态能量,如下描述。有益的是,功率信息共享区域138提供一方法用以使双内核104互相沟通功率信息以在多内核方式实现功率评价值特性,如下面详细描述,在双内核104间不需通过信号电线沟通功率信息。每一内核104包括锁相回路(PLL) 126,该锁相回路1 用以提供内核时钟信号至内核104电路。每一内核104也包括温度传感器1 用以感测内核104的温度。在一实施例中,可通过内核104的微码127从温度传感器128中读取内核104的温度。内核104也包括总线时钟计时器122,总线时钟计时器122耦接至接收总线时钟信号146,总线时钟信号146由耦接至组件102的处理器总线154提供。当总线时钟146 与内核104主动将总线时钟计时器122致能,总线时钟计时器122则进行计时,使得总线时钟计时器122于内核104在此状态中继续追踪时间。总线时钟计时器122以总线时钟信号 146的速率计时。在这种方式中,总线时钟146提供一通用源(common source),每一内核 104可通过总线时钟计时器122追踪时间。仔细而言,每一内核104为功率评价值(power credit)目的设计总线时钟计时器122以提供一周期性的中断至内核104。更准确而言,时间间距T (如一秒)被分割成等长的分格(bin)(如分格数128),且内核104对总线时钟计时器122进行编程,以中断每一分格的区间、或分格的时间或分格的长度。在一实施例中, 处理器总线巧4包括Pentium处理器总线的STPCLK与SLP信号。在一实施例中,在发出 (assert) SLP之后,总线时钟计时器122开始运作。每一内核104也包括常驻计时器124,即使当内核104时钟不被用以使常驻计时器IM保持时间时,常驻计时器IM进行计时。在一实施例中,常驻计时器IM被自激振荡器驱动,即使当内核104时钟停止时,常驻计时器IM亦会持续计时。在一实施例中,因为自激振荡器会在两个内核104间改变,因此每一内核104在一初始时间会将其常驻计时器 124校正至总线时钟146的值。每一内核104也包括功率评价值暂存器1 用以维持每一内核104所使用的信息,以执行功率评价值特性。以下将讨论功率评价值包括的信息,例如,最大功率消耗P值; 时间间距T值;与功率计算有关的多个常数(例如,内核104的动态功率常数,其已于产生组件102的时被决定);功率信息共享区域138的基底地址(base address);分格数;不利于内核104的功率评价值的温度限制;以及用于计算动态能量消耗的动态功率因子。一些功率评价值可通过系统软件被写入功率评价值暂存器129,一些功率评价值可在制造中如通过熔丝(fuses)和/或固线式值(hardwired value)被写入功率评价值暂存器129。一些功率评价值暂存器1 可为内核104的特定模式存储器(MSRs)。
图2是图1的计算机系统100的存储器106中的功率信息共享区域138的方块图。根据一实施例,内核104为x86架构内核用以支持系统管理模式(SMM)。如果处理器可正确地执行在x86处理器上的应用程序,则该处理器为x86架构处理器。如果一应用程序可得到可预期的结果,则显示该应用程序被正确地执行。仔细而言,内核104执行x86指令集与包含x86用户暂存器集的指令。如图2所示,根据一实施例,系统软件(如操作系统、 BIOS)为功率信息共享区域138分配SMM存储器空间202的一部分,该部分未被其他函数使用的SMM存储器空间202。因此,系统软件设计功率评价值暂存器1 具有功率信息共享区域138的基底地址。在其他实施例中,系统软件配置存储器106空间的一部分给功率信息共享区域138(该部分尚未被其他软件程序使用),并且使用功率信息共享区域138的基底地址对功率评价值暂存器1 进行编程。图3是根据本发明的图1的组件102所实施的操作流程图,流程开起始在步骤 302。在步骤302中,重置内核104。内核104可通过电源开启(power-on)、组件102的重置脚位的判断或软件重置对内核104进行重置。接着流程进行至步骤304。在步骤304中,每一内核104校正其常驻计时器124,也就是每一内核104判定常驻计时器IM的循环周期(以判定每一常驻计时器IM刻点的总线时钟刻点数)。如上所述,常驻计时器IM可被自激振荡器驱动,导致常驻计时器IM的循环周期在独立集成电路间的变动非常小。因此,每一内核104基于总线时钟146的频率,将其常驻计时器IM进行校正。仔细而言,每一内核104判定由于常驻计时器124的每一循环发生的总线时钟146 的循环数。在一实施例中,运作微码127,以响应内核104的重置,其同时启动常驻计时器 124以及总线时钟计时器122,并且将其编程使其于总线时钟146周期的一既定数目后形成中断。当总线时钟计时器122中断时,微码127读取常驻计时器124的值,以判定在常驻计时器IM上发生的循环数目,并且通过常驻计时器IM循环数目将总线时钟计时器122循环的既定数目与常驻计时器124的循环进行相除,以决定由于常驻计时器124的每一循环发生的总线时钟146循环的数目。流程结束在步骤304。图4是根据本发明的图1计算机系统100所实施的操作流程图。流程开起始在步骤 402。在步骤402中,系统软件对一或多个功率评价值暂存器1 进行写入,以初始功率评价值特性。如上所述,该写入可指定与功率评价值有关的数据值。在一实施例中,该写入至功率评价值暂存器1 可启动图1的微码127。接着流程进行至步骤404。在步骤404中,微码127产生以及初始分格结构以响应在步骤402中的初始化。 也就是说,微码127产生一分格结构,其包括项目的循环队列。项目的数目对应于时间间距 T的分格的时间数目。每一项目用以存储相应的分格中有关功率消耗的信息。在一实施例中,在分格的时间中,每一分格存储内核104所消耗的动态能量值与漏损能量值。在一实施例中,微码127通过动态能量与漏损能量的既定值对每一分格进行初始化。在一实施例中, 微码127于内核104的私有随机存取存储器中产生分格结构,用户指令无法对该私有随机存取存储器进行存取,只有微码127能对其进行存取。微码127动态地更新分格结构与使用该分格结构执行功率评价值特性。接着流程进行至步骤406。在步骤406中,微码127初始与功率评价值特性有关的变量,该变量存放于私有随机存取存储器中。从功率评价值(power credit)暂存器1 读取多数变量,其余变量经由计算得到的。举例而言,分格的时间经由时间间距T与分格数相除而得到的。其他得到的参数包括(但本发明不限于此)最近计算的内核104的时间间距漏损与动态能量;最近计算的内核104的时间间距总能量;最近更新的分格结构的时间;临界值,如果组件102时间间距能量低于该临界值,内核104判定于高于Xp的操作点操作(在一实施例中,有两频率高于Xp与两相异临界值);临界值,如果系统软件最近要求该临界值,内核104判定于高于 Xp的操作点操作;动态能量因子;分格项目的队列指标;最后采样的内核104的温度;最后的内核104的电压;最后的内核104的频率。内核104也判定其动态能量常数,该动态能量常数为该频率与该电压平方的乘积所得的值,用以计算内核104的动态能量消耗。在一实施例中,微码127计算动态功率常数作为功率评价值暂存器129中的信息函数。在一实施例中,为了减少运算量的需求,内核104在分格项目、时间间距与功率信息共享区域138中分开保持动态与漏损能量值。仔细而言,该值为换算值,动态能量值没有加入因子至动态功率常数。然而当最后组件间距能量值在副程序W中(请见图9)运算时,是将动态功率常数只与间距动态能量进行相乘。在此实施例中,内核104也于初始时间写入动态功率常数值至功率信息共享区域138。接着进行至步骤412。在步骤412中,微码127设定总线时钟计时器122,并且于一分格的时间发生后启动总线时钟计时器122以产生中断。每一次总线时钟计时器122中断发生时,微码127重新设计总线时钟计时器122以在分格的时间发生时产生中断。此外,每一次内核104从内核104时钟没有运作的休眠状态启动时,微码127重新设计总线时钟计时器122以在分格的时间发生时产生中断。流程结束在步骤412。图5是根据本发明的图1计算机系统100所实施的操作流程图。图5包括第5A 与5B图。图5A包括步骤502至539,图5B包括步骤542至588。流程开起始在步骤502。在步骤502中,在内核104有一功率事件发生。功率事件包括内核104时钟频率更新、总线时钟计时器122的中断、内核104进入休眠、内核104从总线时钟计时器122休眠状态启动、或内核104从常驻计时器IM休眠状态启动。在一实施例中,功率事件引发微码127。接着流程进行至步骤504。在决定步骤504中,微码127判定是否更新内核104时钟频率,微码127更新内核 104时钟频率的原因包括(但本发明不限于此)系统软件要求改变内核104的P状态或温度事件,如内核104的温度高于或低于既定临界值。如果内核104更新时钟频率,流程进行至步骤522,否则流程进行至步骤506。在决定步骤506中,微码127判定总线时钟计时器122是否产生中断。如果总线时钟计时器122产生中断,流程进行至步骤528,否则流程进行至步骤508。在步骤508中,微码127判定内核104是否进入休眠状态。进入休眠状态代表内核104不再执行用户指令。在一实施例中,休眠状态可对应至一众所均知的C状态。举例而言,内核104在暂停状态如ClC状态,以响应温度调节事件或执行HALT指令或MWAIT指令。再者,计算机系统100芯片组发出(assert)处理器总线巧4上的STPCLK信号,以要求允许发出(assert) SLP信号以停止内核104时钟,作为C2。直到发出(assert) SLP为止,内核104时钟仍处于运作状态且总线时钟计时器122也仍在运作。然后,一旦发出(assert) 31^,作为C3,总线时钟计时器122将不再运作且内核104 —定需依赖常驻计时器124以判
17定内核104的休眠时间。此外,内核104能通过关闭锁相回路126,以减少休眠功率消耗,作为C4。最后,内核104能通过停止一部分或全部的快取存储器以及中断功率减少休眠功率消耗,作为C5。值得注意的是,内核104于休眠状态相较于操作状态时消耗较少功率,当于最近时间间距计算总组件102能量消耗时,考虑到功率评价值(power credit)特性。系统软件可要求内核104和/或组件102改变休眠状态,或者内核104可自行改变。如果内核 104即将休眠,流程进行至步骤534,否则;流程进行至步骤512。在步骤512中,在总线时钟计时器122仍在操作的期间中,微码127判定内核104 是否从休眠状态(总线计时器的休眠状态)中启动,使得微码127可更新分格结构与间距能量值。如果内核104从总线时钟计时器122的休眠状态启动,流程进行至步骤538,否则; 流程进行至步骤514。在决定步骤514中,在总线时钟计时器122不再操作的期间中,微码127判定内核 104是否从休眠状态(常驻计时器的休眠状态)中启动,使得微码127不再能够更新分格结构与间距能量值,且内核104 —定需依靠常驻计时器124以判定内核104的休眠时间。如果内核104从常驻计时器124的休眠状态启动,流程进行至步骤M2,否则流程结束在步骤 514。在步骤522中,呼叫一副程序,在此指副程序Z。副程序Z将于图6中详细描述。 从副程序Z获得回报并且流程进行至步骤524。在步骤524中,呼叫一副程序,在此指副程序X。副程序X将于图8中详细描述。 从副程序X获得回报并且流程结束步骤524。在在步骤528中,呼叫副程序Z。从副程序Z获得回报并且流程进行至步骤532。在步骤532中,呼叫一副程序,在此指副程序Y。副程序Y将于图10中详细描述。 流程结束在步骤532。在步骤534中,呼叫一副程序。获得回报并且流程进行至步骤536。在步骤536中,微码127使内核104进入休眠状态。流程结束在步骤536。在步骤538中,呼叫副程序Z。从副程序Z获得回报并且流程进行至步骤539。在步骤538中,呼叫副程序Y。流程结束在步骤539。在步骤M2中,微码127读取常驻计时器124以及计算休眠时间(TSLP)。在一实施例中,微码127以总线时钟146循环计算休眠时间。流程进行至步骤M4。在步骤544中,微码127计算分格剩下的时间,利用分格的时间减去当时分格最后更新的时间,其用以作为微码127的变量。接着流程进行至步骤M6。在步骤M6中,微码127判定在步骤M4中,计算的休眠时间是否大于时间间距。 如果休眠时间大于时间间距,流程进行至步骤M8,否则流程进行至步骤564。在步骤548中,微码127计算于内核104处于休眠状态时,内核104所消耗的漏损能量。计算漏损能量用以作为温度传感器1 与操作电压提供的内核104温度的函数。接着流程进行至步骤阳2。在步骤552中,微码127设定当内核104在休眠状态时消耗的动态能量为0,因为内核104时钟没有操作。接着流程进行至步骤554。在步骤M4中,微码127将在步骤548与552中计算的内核间距漏损能量与动态能量,写入功率信息132的区域,该功率信息132的区域与功率信息共享区域138的内核104有关。接着流程进行至步骤556。在步骤556中,微码127计算于分格的时间中,当内核104休眠时所消耗的动态能量,将内核间距动态能量除以分格数,以获得动态能量。接着流程进行至步骤阳8。在步骤558中,微码127计算于分格的时间中,当内核104休眠时所消耗的漏损能量,将内核间距漏损能量除以分格数,以获得漏损能量。接着流程进行至步骤562。在步骤562中,微码127将步骤556与558中计算的分格动态能量与分格漏损能量,填至队列中的所有分格项目中。接着流程进行至步骤562。在步骤564中,微码127判定休眠时间是否小于目前分格剩余的时间。如果休眠时间小于前分格剩余的时间,流程进行至步骤566,如果否,流程进行至步骤572。在步骤566中,微码127设定动态功率因子为0使得在步骤712中计算的动态能量为0。接着流程进行至步骤568。在步骤568中,呼叫一副程序,在此指副程序V,其中系利用一时间参数呼叫副程序V,该时间参数为时间分格最后更新时间与休眠时间的加总。副程序V于图7中详细描述。该流程结束于副程序V。在决定步骤572中,微码127判定休眠时间是否大于分格的时间。如果休眠时间大于时间分格的时间,流程进行至步骤574,否则,流程进行至步骤584。在步骤574中,微码127设定动态功率因子为0,使得在步骤712中计算的动态能量为0。接着流程进行至步骤576。在步骤576中,利用一相等于时间分格的时间的时间参数呼叫副程序V。接着从副程序V获得回报并且流程进行至步骤578。在步骤578中,呼叫副程序Y。获得回报并且进行至步骤582。在步骤582中,通过时间分格的时间减少休眠时间减去时间分格的时间。有益的是,从步骤572至582中的回圈与步骤584至588中的流程掌握了内核104处于休眠状态的可能性,其为内核时钟不为多重时间分格的时间运作并且其必计算为在更新时间分格结构的过程。接着流程进行至步骤572。在步骤584中,微码127设定动态功率因子为0,使得在步骤712计算的动态能量为0。接着流程进行至步骤586。在步骤586中,利用一相等于时间分格的时间的时间参数呼叫副程序V。接着从副程序V获得回报,流程进行至步骤588。在步骤588中,呼叫副程序Y,流程结束在步骤588。图6是根据本发明的图1计算机系统100执行副程序Z的操作流程。流程开始在步骤602。在步骤602中,微码127根据内核104是否处于运作状态或者一特定的休眠状态设定动态功率因子。运作状态的动态功率因子为1,以及由于一般内核104于每一接续地低休眠状态中消耗的功率较低,每一接续地低休眠状态具有一较小的动态功率因子。举例而言,Cl状态的动态功率因子系运作状态的动态功率因子的分数(fraction),既使如此在步骤712中计算的乘积也可与运作状态相同,由于处于Cl状态中的动态功率常数、电压以及频率可与运作状态相同,而内核104可消耗较低的功率由于其可由执行指令中暂停。另外,在一实施例中,步骤708可加入一漏损功率因子。举例而言,在C4状态中,C4状态的漏损功率因子小于C3状态的漏损功率因子,由于内核104因锁相回路1 被禁用而消耗较少的功率,以及在C5状态中,C5状态的漏损功率因子小于C4状态的漏损功率因子,由于内核 104因快取存储器的电压被禁用而消耗较少的功率。流程进行至步骤604。在步骤604中,微码127读取总线时钟计时器122的值以判定内核104自电流分格时间起开始操作了多久时间。流程进行至步骤606。在步骤606中,呼叫副程序V与在步骤604中读取的总线时钟计时器122的值。流程结束在步骤606。图7是根据本发明的图1计算机系统100执行副程序V的操作流程图。流程开始在步骤702。在步骤702中,微码127自目前分格(current bin)最后被更新(最后更新TLUP) 开始,根据计时器输入至副程序V的值计算时间,其可为在图6的步骤604中读取自总线时钟计时器122的值或者通过图5的步骤568、576或586中的值。流程进行至步骤706。在步骤706中,微码127读取温度传感器128以获得目前温度。流程进行至步骤 708。在步骤708中,微码127根据电压以及目前温度计算于最后更新(TLUP)中消耗的漏损能量。流程进行至步骤712。在步骤712中,微码127于最后更新(TLUP)中计算由内核104消耗的动态能量做为最后更新(TLUP)、其频率、动态功率常数、动态功率因子以及其电压平方的乘积。在一实施例中,微码127计算新与旧电压的平均以及新与旧频率的平均以进行上述计算。在多数情况下,例如当一总线时钟计时器122发生中断,旧电压以及频率将与新电压以及频率相同,致使新与旧电压的平均以及新与旧频率的平均与目前的数值相同。另外,在频率和/或电压改变的情况下,新与旧电压的平均以及新与旧的平均将会与目前的数值不同。流程进行至步骤716。在步骤716中,微码127通过在步骤708计算的漏损能量增加目前分格的漏损能量。另外,微码127通过在步骤712计算的动态能量增加目前分格动态能量。自功率信息共享区域138的值系在最旧(初)的分格中,以及分格数相对较大(在一实施例中分格数为128),数值中不准确的电压可归咎于时间间距(T)的量子化(quantization) —般相对较小(近乎)。流程进行至步骤718。在步骤718中,微码127通过在步骤708中计算的漏损能量增加目前时间间距的漏损能量给此内核104。另外,并且微码127通过在步骤712中计算的动态能量增加目前时间间距的动态能量给此内核104。流程进行至步骤722。在步骤722中,微码127写入漏损能量以及动态能量至功率信息共享区域138给在步骤718中计算的此内核104。流程结束在步骤722。图8是根据本发明的图1计算机系统100执行副程序X的操作流程图。流程开始在步骤802。在步骤802中,微码127判定要求的频率是否与功率评价值特性触发频率相同。如果要求的频率与功率评价值特性触发频率相同,流程进行至步骤804 ;否则,流程进行至步骤 803。在步骤803中,微码127控制电压调节模块108以及内核104锁相回路126,致使
20内核104操作于要求的P-状态。在一实施例中,一比较器比较两内核104的VID信号158 输出,并且当两内核104的VID信号158输出不同时,选择较大的一个。流程结束在步骤 803。在步骤804中,微码127自温度传感器1 获得内核104的温度以及判定内核104 的温度是否大于一既定温度临限值。在一实施例中,温度临限值由功率评价值129。当内核 104的温度高于既定温度临限值时,流程进行至步骤803 ;否则,流程进行至步骤806。在步骤806,呼叫一副程序W。副程序W的详细说明可参考关于图9的叙述。流程从副程序W获得回报,其回报在最新时间间距中通过组件102所计算的消耗能量,或者组件时间间距能量(PIE)的数值(即副程序W的回报为组件时间间距能量)。流程进行至步骤 808。在步骤808中,微码127判定在步骤806中接收到的组件时间间距能量是否大于一既定能量临限值。既定能量临限值略小于最大消耗功率⑵以及时间间距⑴的乘积。 在另一实施例中,另外通过内核104外部消耗许多功率的微处理器100电路可减少既定能量临限值,例如一共用的快取存储器;或者,副程序W可包括组件时间间距能量计算内核 104外部的微处理器100电路消耗的能量。在一实施例中,既定能量临限值由功率评价值暂存器1 所提供的。如果组件时间间距能量大于既定能量临限值,流程进行至步骤803 ;否则,流程进行至步骤812。在步骤812中,微码127有利地控制电压调节模块108以及内核104锁相回路1 以致使内核104操作于高于Xp的操作点上。流程结束于812。图9是根据本发明的图1计算机系统100执行副程序W的操作流程图。流程开始在步骤902。在步骤902中,微码127从功率信息共享区域138中,读取内核104的其他者的时间间距动态能量以及时间间距漏损能量。值得注意的是在多于两个内核104的实施例中, 微码127可读取时间间距动态能量以及时间间距漏损能量的数值给每一内核的其他者,并且于以下步骤904以及908的计算流程中使用时间间距动态能量以及时间间距漏损能量的数值,以计算组件102的时间间距能量。流程进行至步骤904。在步骤904,微码127使用在步骤902中获得的数值,以将内核104的其他者的漏损能量以及内核104的其他者的动态能量进行相加,以作为时间间距能量。流程进行至步骤 906。在步骤906中,微码127将此内核104的漏损能量以及此内核104的动态能量进行相加,以作为此内核104的时间间距能量。流程进行至步骤908。在步骤908,微码127将内核104的其他者在步骤904中计算的时间间距能量以及此内核104在在步骤906中计算的时间间距能量进行相加,以作为组件102的时间间距能量。流程进行至步骤912。在步骤912中,微码127回报组件102在步骤908中计算的时间间距能量。流程结束在步骤912。图10是根据本发明的图1计算机系统100执行副程序Y的操作流程图。流程开始在步骤1002。在步骤1002中,微码127重新启动总线时钟计时器122。也就是说,微码127对总线时钟计时器122进行编程,以运作其他分格的时间以及产生一中断至内核104。流程进行至步骤1004。在步骤1004中,微码127自温度传感器1 获得内核104的温度,并且判定内核 104的温度是否高于既定温度临限值。如果内核104的温度高于既定温度临限值,流程进行至步骤IOM ;否则,流程进行至步骤1006。在步骤1006中,呼叫副程序。流程自副程序W回报已计算的组件102于最近时间间距中消耗的能量(组件时间间距能量)。流程进行至步骤1008。在步骤1008中,微码127判定在步骤1006中接收的组件时间间距能量是否大于既定能量临限值。如果组件时间间距能量大于既定能量临限值,流程进行至步骤IOM ;否则,流程进行至步骤1014。在步骤1014中,微码127有利地控制电压调节模块108以及内核104的锁相回路 126以致使内核104操作于操作点Xp之上。在一实施例中,一比较器比较两个内核104的 VID信号158输出,并且当两个内核104的VID信号158输出不同时,选择较大的一个。流程进行至步骤1016。在步骤1016中,微码127通过在队列的最旧分格项目的特定漏损能量,减少时间间距漏损能量给此内核104。因此,给此内核104的目前时间间距漏损能量,相较于加总所有分格漏损能量,可通过图7的步骤718以及图10的步骤1016的操作更有效率的运算。相似地,微码127通过在队列的最旧分格项目的特定动态能量,减少目前时间间距动态能量给内核104。流程进行至步骤1018。在步骤1018,微码127将在步骤1016中计算的漏损能量以及动态能量写入功率信息共享区域138给内核104。流程进行至步骤1022。在步骤1022中,微码127清除在队列中最旧的分格,使得最旧的分格变成最新的分格或者目前分格。流程结束在步骤1022。在步骤IOM中,微码127控制电压调节模块108以及内核104的锁相回路126以致使内核104操作在先前的操作点,例如Xp或者更低(below)。流程进行至步骤1016。由上述说明可知,有利地,只要累积足够的功率评价值(例如,在一时间周期中的所有内核104判定组件时间间距能量均没有超过既定能量临限值),所有内核均可操作在 Xp以上的频率。本发明较优于仅依据一粗糙指标以操作一个或更多的内核于一升高频率的多内核处理器,如这种做法不会致能所有内核操作在一升高的频率,因此无论如何多个内核中的一个会处于休眠状态。图11是本发明另一实施例的包括一双内核微处理器组件102的一计算机系统100 的方块图,其包括一功率评价值特性。图11所示的计算机系统100相似于图1所示的计算机系统100,其包括组件102经由总线巧4耦均至存储器106与电压调节模块108,以及组件102包括两个内核104A/104B。另外,图11的计算机系统的组件102装置的能量消耗已判定(由于功率评价值特性)为不同于图1的计算机系统。图1所示的计算机系统11中的内核104根据各种输入(例如电压、频率以及温度)计算其功率消耗(能量消耗速率),以计算时间间距内的能量消耗,图11所示的计算机系统100包括组件102外部的电路,其提供瞬间功率消耗指标VINSTPWR信号1154,内核104使用瞬间功率消耗指标VINSTPWR信号 IlM计算时间间距内的能量消耗。另外,每一内核104包括一能量监视器1144,能量监视器1144取样VINSTPWR信号1154信号以及在每一次能量监视器1144读取信号时累积当时由VCORE信号156信号消耗的能量值。已累积的能量可由微码127读取,以作为PKGENERGY 信号1162的数值。在组件102外部的电路包括一电阻(R)串联于VRM 108至VCORE信号156的输出上以及一放大器1102 (DIFF. AMP.)跨接于在电阻(R)的两端点,以产生一 VINSTCUI^f 号1152。VINSTCUR信号1152是一模拟电压信号,其数值与经由VCORE信号156提供至组件102的瞬间电流成比例。一模拟乘法器1104(MUL)亦接收VCORE信号156以及相其与 VINSTCUR信号1152相乘,以产生VINSTPWR信号1154。VINSTPWR信号1154是一模拟电压,其数值与经由VCORE信号156提供至组件102的瞬间功率成比例。能量监视器1144于每一内核104中,转换VINSTPWR信号1154为一数字信号PKGENERGY信号1162。能量监视器1144包括一状态暂存器,微码127可由状态暂存器中读取PKGENERGY信号1162的值。 PKGENERGY信号1162指出自能量监视器1144最后一次读取以来提供给VCORE信号156的能量值。因此,每次微码127自能量监视器1144读取PKGENERGY信号1162的值,能量监视器1144重置能量值为0,并且开始累积一新的由组件102所消耗的能量值直到下次微码 127读取PKGENERGY信号1162的值为止。能量监视器1144通过除以电阻R的值(以及当并联的放大器对VINSTCUR信号1152放大时,与一分数常数相乘),转换VINSTPWR信号1154 的模拟电压值为提供至组件102的瞬间功率值。图12是根据本发明的图11计算机系统100所实施的操作流程图。图12的流程相似于图4。另外,在图12中,流程从步骤412进行至新的步骤1216。在步骤1216中,每一内核104的微码127将各别的能量监视器1144的值写入控制暂存器,以设定并且启动能量监视器1144累积组件102的能量消耗。流程结束在步骤 1216。图13是根据本发明的图11计算机系统100所实施的操作流程图。图13的流程相似于图5B。另外,以下将详述图13以及图5B的流程的差异。图13并无绘示步骤566、574以及584,因此流程直接由步骤564至步骤568的分支“是”开始进行;流程直接由步骤572至步骤576的分支“是”开始进行;以及流程直接由步骤576至步骤586的分支“是”开始进行。另外,图13将原本图5的步骤548、552、556以及562取代为步骤1348、1352、1356以及1362。最后,步骤554以及558并无绘示于图13 但未被取代;因此,流程自步骤1352直接进行至步骤1356以及自步骤1356直接进行至步骤 1362。若在步骤546中,微码127判定在步骤544中计算的休眠时间大于时间间距的时间时,流程进行至新的步骤1348。在步骤1348中,微码127自能量监视器1144读取PKGENERGY信号1162的值。流程进行至新的步骤1352。在步骤1352中,微码127于时间间距中,当内核104处于休眠状态时,根据在步骤 1348中获得的PKGENERGY信号1162以及在步骤542获得的休眠时间的值,计算由组件102 所消耗的组件时间间距能量(组件时间间距能量)。在一实施例中,时间间距以及休眠时间的值以总线时钟146的一刻点为单位,计算组件时间间距能量值作为PKGENERGY值的乘积, 一分数的分子为时间间距以及分母为休眠时间。流程自步骤1352进行至步骤1356。
在步骤1356中,当内核104 —分格的时间处于休眠状态,微码127将在步骤1352 中所判定的组件时间间距能量除以分格数的商数(quotient),作为由分格组件102所消耗的能量。流程由步骤1356进行至1356至步骤1362。在步骤1362中,微码127将在步骤1356中计算的分格组件102的能量填入在队列中的所有分格项目。流程结束在步骤1362。图14是根据本发明的图11计算机系统100执行副程序Z的操作流程图。图14 与图6相同,除了第14不包括步骤602,故流程开始于在步骤604。因此,图14所示的另一实施例不使用图1的实施例的动态功率因子。由于实际瞬间功率的值经由VINSTPWR信号 1154提供至内核104,故本实施例不需要动态功率因子。图15是根据本发明的图11计算机系统100执行副程序V的操作流程图。流程开始在步骤702,其相似于图7所示的步骤702。流程进行至步骤1512。在步骤1512中,微码127自能量监视器1144读取PKGENERGY信号1162的值,以判定在最后更新中由组件102所消耗的能量值。流程进行至步骤1516。在步骤1516,微码127通过在步骤1512中获得的PKGENERGY信号1162的值,减少目前分格能量。有利地,由于分格数相对较大(在一实施例中分格数为128),数值中不准确的电压可归咎于时间间距(T)的量子化(quantization) —般相对较小(近乎)。流程进行至步骤1518。在步骤1518中,微码127通过在步骤1512中获得的PKGENERGY信号1162的值, 减少组件时间间距能量。流程结束在步骤1518。图16是根据本发明的图11计算机系统100执行副程序X的操作流程图。图16 与图8相同,除了图16不包括步骤806以外;故流程直接由步骤804至步骤808的分支 “否”开始进行故流程。因此,图16所示的另一实施例不要求如图1的实施例的组件时间间距能量的计算结果。这是因为组件时间间距能量由读取自能量监视器1144的每一时间的PKGENERGY信号1162所维持的。再者,值得注意的是,如图11所示的另一实施例不需要副程序W,因为组件时间间距能量由读取自能量监视器1144的每一时间的PKGENERGY信号 1162所维持的。图17是根据本发明的图1计算机系统100执行副程序Y的操作流程图。图17除了以下不同之外,相似于图10。图17不包括步骤1006 ;故流程直接由步骤1004至步骤1008的分支“否”开始进行。因此,图17所示的另一实施例不要求如图1的实施例的组件时间间距能量的计算结果。 这是因为组件时间间距能量由读取自能量监视器1144的每一时间的PKGENERGY信号1162 所维持的。另外,图10的步骤1016被图17所示的步骤1716取代,使得流程直接由步骤1014 以及1024进行至步骤1716。在步骤1716中,微码127通过在队列的最旧分格项目的特定能量,减少组件时间间距能量。因此,相较于加总所有分格的能量,通过图15的步骤1518中以及图17所示的步骤1716的操作,可对组件时间间距能量进行更有效率的运算。图7不包括步骤1018 ;故流程直接由步骤1716进行至步骤1022。图18是本发明另一实施例的包括一双内核微处理器组件102的一计算机系统100
24的方块图,其包括一功率评价值特性。图18所示的计算机系统100相似于图11所示的计算机系统100,另外,图18所示的计算机系统100不包括图4的模拟乘法器1104。取而代的是由能量监视器1144执行模拟乘法器的功。因此,能量监视器1144接收每一 VINSTCUR 信号1152以及VCORE信号156。以下将详述本实施例的诸多有利的功效。首先,其中一种致能内核以与另一内核传送电源信息的方法为制造两匹配的内核,并且直接架设信号线于在两内核中间,使得该两内核可彼此互相沟通。另外,本实施利的另一优点为,内核可经由存储器彼此沟通,因此不需要制造匹配的多个内核,但必需分别制造再进行封装。因此,本发明的实施利可具有更高于制造匹配内核方法的产量。第二,本实施例的内核使用存储器以进行电源信息的沟通,相较于通过信号线直接进行沟通的内核,本实施例的规模可更佳于两个以上的内核,由于信号线的数量会基于内核的数量而指数增加。第三,功率评价值特性的实施例的优点为,其可允许具有良好温度环境/解决方案的用户/系统可不需受至于其他不具有良好温度环境/解决方案的用户/系统,而享受额外的高效能。第四,有些指令(例如,非代数的函数指令(transcendental functioninstructions) 或者具有巨大运算域的相乘模数指令(modulo multiplyinstructions with extremely large operands))可能相对地执行时间较长,可能约为一分格或者时间间具T的时间。由于根据本发明所述的实施例,一个内核可判定必要的功率评价值是否为目前项目的组件并且根据其调整本身的效能,本发明所述的实施例可在当时一长指令之下操作适当的事件,既使其他内核无法响应其总线时钟计时器的中断。第五,如前所述,在累积足够的功率评价值的条件下,所有内核均可操作于高于Xp 的频率。虽然本发明的实施例已于上述说明其目标、特性以及优点,其他实施例亦为本发明的考虑。举例而言,虽然本发明的实施例的瞬间功率指标由图11以及图18所示的多内核架构的组件的外部电路所提通的,但单内核组件亦在本发明的范围。再者,虽然本发明已说明动态以及漏损能量代表的值系各别维持的,在其他实施例中也可考虑维持一单一代表能量的值。另外,在其他实施例中,信号VINSTPWR信号1154或者信号VINSTCUR信号1152 由电压调节模块108或者由电源供应直接提供至组件102。最后,虽然本发明的实施例已说明功率评价值特性大量用于微码,其他实施例亦考虑将功率评价值特性大量用于硬件逻辑或者微码与硬件逻辑的组合。本发明的不同实施例已于本文叙述,但本领域技术人员应能了解这些实施例仅作为范例,而非限定于此。本领域技术人员可在不脱离本发明的精神的情况下,对形式与细节上做不同的变化。例如,软件可致能本发明实施例所述的装置与方法的功能、组建 (fabrication)、塑造(modeling)、模拟、描述(description)、以和/或测试,也可通过一般程序语言(C、C++)、硬件描述语言(Hardware Description Languages,HDL)(包括 Verilog HDL、VHDL等等)、或其他可利用的程序语言来完成。此软件可配置在任何已知的计算机可使用介质,例如磁带、半导体、磁盘,或是光盘(例如⑶-ROM、DVD-ROM等等)、互联网、有线、 无线、或其他通信介质的传输方式之中。本发明所述的装置与方法实施例可被包括于半导体知识产权内核,例如微处理器内核(以HDL来实现),并转换成集成电路产品的硬件。此外,本发明所述的装置与方法通过硬件与软件的结合来实现。因此,本发明不应局限于所公开的实施例,而是依所附权利要求书与等效实施所界定。特别是,本发明可实施在使用于一般用途计算机中的微处理器装置内。最后,本发明虽以优选实施例公开如上,然其并非用以限定本发明的范围,本领域技术人员在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附权利要求书所界定者为准。
权利要求
1.一种微处理器,用以在具有存储器的一系统中运作,该微处理器包括多个处理内核,其中该多个处理内核的每一处理内核用以当检测到一电源事件发生时,计算一第一值,其中该第一值代表该处理内核在该电源事件的一时间间距中所消耗的能量值,其中该时间间距的长度为一既定时间值;从该存储器中读取一或多个第二值,其中该或该多个第二值代表在该时间间距中由该多个处理内核的其他者所消耗的能量值,其中该或该多个第二值已预先由该多个处理内核的其他者计算出以及写入至该存储器;以及根据该第一值与该或该多个第二值调整该处理内核的该操作频率。
2.如权利要求1所述的微处理器,其中只有当根据该第一值与该或该多个第二值的一既定条件存在时,每一处理内核通过设定该处理内核的该操作频率高于一既定频率以调整该操作频率。
3.如权利要求2所述的微处理器,其中该既定频率为在该微处理器的消耗不多于一既定能量值的情况下使该微处理器的该多个处理内核可维持操作于该既定时间值的一频率。
4.如权利要求2所述的微处理器,其中该既定频率为系统软件可要求该处理内核操作的一最大频率。
5.如权利要求2所述的微处理器,其中每一处理内核还包括用以利用该第一值与该或该多个第二值计算一第三值,其中该第三值约代表该微处理器在该时间间距中所消耗的能量值。
6.如权利要求5所述的微处理器,其中若该第三值小于一第四值,则根据该第一值与该或该多个第二值的该既定条件成立,其中在长度为该既定时间值的任意时间间距中,该第四值代表该微处理器在该系统的可允许消耗的一能量既定最大值。
7.如权利要求2所述的微处理器,其中若该第一值与该或该多个第二值的加总小于一第四值,则根据该第一值与该或该多个第二值的该既定条件成立,其中在长度为该既定时间值的任意时间间距中,该第四值代表该多个处理内核在该系统的可允许消耗的一能量既定最大值。
8.如权利要求2所述的微处理器,其中若该既定条件不成立时,每一处理内核还用以通过设定该处理内核的该操作频率在该既定频率或低于该既定频率以调整该操作频率。
9.如权利要求1所述的微处理器,其中每一处理内核还用以写入该第一值至该存储器,以提供该多个处理内核的其他者使用。
10.如权利要求1所述的微处理器,其中该第一值与该或该多个第二值均包括一动态能量元件以及一漏损能量元件。
11.如权利要求1所述的微处理器,其中每一处理内核用以自该存储器中的一位置读取该或该多个第二值,且还包括用以在该或该多个第二值读取自该存储器之前,接收该存储器中的该位置的一地址。
12.如权利要求11所述的微处理器,其中每一处理内核用以接收该位置的该地址,以响应系统软件将该地址写入处理内核。
13.如权利要求11所述的微处理器,其中该存储器的该位置的该地址存放在该存储器的一系统管理模式SMM区域。
14.如权利要求1所述的微处理器,其中每一处理内核包括微码用以计算该第一值、读取该或该多个第二值以及调整该操作频率。
15.如权利要求1所述的微处理器,其中该能量事件包括来自该列表的一事件包括来自一计时器用以指出超过一既定时间周期的指标,一用以让该处理内核休眠的要求,该处理内核从休眠状态恢复操作、以及一用以更新该处理内核的操作频率的要求。
16.如权利要求15所述的微处理器,其中该既定时间周期小于两数量级的该既定时间值。
17.如权利要求15所述的微处理器,其中该休眠状态包括禁用一时钟信号于大部分的该处理内核的状态。
18.一种操作微处理器的方法,在具有存储器的一系统中包括多个处理内核,其中该存储器可被该多个处理内核存取,该方法包括当检测到一电源事件发生时,通过该多个处理内核计算一第一值,其中该第一值代表该处理内核在该电源事件的一时间间距中所消耗的能量值,其中该时间间距的长度为一既定时间值;通过该处理内核从该存储器中读取一或多个第二值,其中该或该多个第二值代表在该时间间距中由该多个处理内核的其他者所消耗的能量值,其中该或该多个第二值已预先由该多个处理内核的其他者计算出以及写入至该存储器;以及通过该处理内核根据该第一值与该或该多个第二值调整该处理内核的操作频率。
19.如权利要求18所述的操作微处理器的方法,其中只有当根据该第一值与该或该多个第二值的一既定条件存在时,通过设定该处理内核的该操作频率高于一既定频率以调整该操作频率。
20.如权利要求19所述的操作微处理器的方法,其中该既定频率为在该微处理器的消耗不多于一既定能量值的情况下使该微处理器的该多个处理内核可维持操作于该既定时间值的一频率。
21.如权利要求19所述的操作微处理器的方法,其中该既定频率为系统软件可要求该处理内核操作的一最大频率。
22.如权利要求19所述的操作微处理器的方法,还包括通过该处理内核利用该第一值与该或该多个第二值计算一第三值,其中该第三值约代表该微处理器在该时间间距中所消耗的能量值。
23.如权利要求22所述的操作微处理器的方法,其中若该第三值小于一第四值,则根据该第一值与该或该多个第二值的该既定条件成立,其中在长度为该既定时间值的任意时间间距中,该第四值代表该微处理器在该系统的可允许消耗的一能量既定最大值。
24.如权利要求22所述的操作微处理器的方法,其中若该第一值与该或该多个第二值的加总小于一第四值,则根据该第一值与该或该多个第二值的该既定条件成立,其中在长度为该既定时间值的任意时间间距中,该第四值代表该多个处理内核在该系统的可允许消耗的一能量既定最大值。
25.如权利要求19所述的操作微处理器的方法,其中若该既定条件不成立时,更通过设定该处理内核的该操作频率在该既定频率或低于该既定频率以调整该操作频率。
26.如权利要求18所述的操作微处理器的方法,还包括通过该处理内核写入该第一值至该存储器,以提供该多个处理内核的其他者使用。
27.如权利要求18所述的操作微处理器的方法,其中该第一值与该或该多个第二值均包括一动态能量元件以及一漏损能量元件。
28.如权利要求18所述的操作微处理器的方法,其中自该存储器读取该或该多个第二值方法包括自该存储器中的一位置读取该或该多个第二值,还包括通过该处理内核于该或该多个第二值读取自该存储器之前,接收该存储器中的该位置的一地址。
29.如权利要求洲所述的操作微处理器的方法,其中接收该位置的该地址,以响应系统软件将该地址写入处理内核。
30.如权利要求观所述的操作微处理器的方法,其中该存储器的该位置的该地址存放在该存储器的一系统管理模式SMM区域。
31.如权利要求18所述的操作微处理器的方法,其中通过该处理内核的微码执行计算、读取以及调整。
32.如权利要求18所述的操作微处理器的方法,其中该能量事件包括来自该列表的一事件包括来自一计时器用以指出超过一既定时间周期的指标,一用以让该处理内核休眠的要求,该处理内核从休眠状态恢复操作、以及一用以更新该处理内核的操作频率的要求。
33.如权利要求32所述的操作微处理器的方法,其中该既定时间周期小于两数量级的该既定时间值。
34.如权利要求32所述的操作微处理器的方法,其中该休眠状态包括禁用一时钟信号于大部分的该处理内核的状态。
35.一种计算机程序产品,在计算机装置中嵌入可用的一至少计算机可读存储介质,该计算机程序产品包括在该计算机可读存储介质中嵌入计算机可读程序代码,用以指定一微处理器用以在具有一存储器的一系统中操作,该计算机可读程序代码包括指定多个处理内核的程序代码,其中该多个处理内核的每一处理内核用以当检测到一电源事件发生时,计算一第一值,其中该第一值代表该处理内核在该电源事件的一时间间距中所消耗的能量值,其中该时间间距的长度为一既定时间值;从该存储器中读取一或多个第二值,其中该或该多个第二值代表在该时间间距中由该多个处理内核的其他者所消耗的能量值,其中该或该多个第二值已预先由该多个处理内核的其他者计算出以及写入至该存储器;以及根据该第一值与该或该多个第二值调整该处理内核的该操作频率。
36.如权利要求35所述的计算机程序产品,其中该至少计算机可读存储介质可为一光盘、一磁带、或其他磁性、光学性、或电子存储介质以及一网络、电缆线、无线或其他通信介质。
37.一种微处理器,包括一输入端,用以接收一外部电源施加在该微处理器的瞬间功率大小的一指标;以及多个处理内核,其中每一处理内核用以接收来自该输入端的该指标以及判定于一前段周期中由该微处理器所消耗的能量值, 其中该前段周期为一既定时间长度;以及操作该处理内核于高于一既定频率的一频率,以响应于该前段周期中判定的由该微处理器所消耗的能量值低于一既定能量值。
38.如权利要求37所述的微处理器,其中该既定频率为在该微处理器的消耗不多于一既定能量值的情况下使该微处理器的该多个处理内核可维持操作于该既定时间值的一频率。
39.如权利要求37所述的微处理器,其中该既定频率为系统软件可要求该多个处理内核操作的一最大频率。
40.如权利要求37所述的微处理器,其中每一处理内核包括 一微码;以及一能量监视器,用以接收来自该输入端的该指标,以及相应地判定在微码自该能量监视器读取该能量的多个情况之间的一时间长度中由该微处理器消耗的能量值。
41.如权利要求37所述的微处理器,其中每一处理内核用以使系统软件将该列表的一或多个既定值写入至该处理内核,该列表包括该既定时间长度、该既定频率以及该既定能量值。
42.如权利要求37所述的微处理器,其中该微处理器所消耗的瞬间功率的指标包括正施加于该微处理器的一瞬间电流的指标以及一瞬间电压的指标。
43.如权利要求37所述的微处理器,其中当该微处理器的操作温度低于一既定温度时,则每一处理内核用以于高于该既定频率的该频率操作该处理内核。
44.如权利要求37所述的微处理器,其中当系统软件要求一既定操作频率,则每一处理内核用以于高于该既定频率的该频率操作该处理内核。
45.如权利要求37所述的微处理器,其中每一处理内核包括一私有随机存取存储器,其无法存取用户指令且只存取该处理内核的微码,其中该微码将多个分格的一阵列存储于该私用随机存取存储器中,该多个分格的该阵列存储于该前段周期的多个接续子集合间存储该微处理器所消耗的能量值。
46.一种操作微处理器的方法,包括通过一输入端上的该微处理器接收一外部电源施加在该微处理器的瞬间功率大小的一指标;通过该微处理器的每一处理内核,根据该指标判定于前段周期中由该微处理器所消耗的能量值,其中该周期为一既定时间长度;以及操作该处理内核于高于一既定频率的一频率,以响应于该前段周期中判定的由该微处理器所消耗所的能量值低于一既定能量值。
47.如权利要求46所述的操作微处理器的方法,其中该既定频率为在该微处理器消耗不多于该既定能量值的情况下使该微处理器的该多个处理内核可维持操作长于该既定时间长度的一频率。
48.如权利要求46所述的操作微处理器的方法,其中该既定频率为系统软件可要求该多个处理内核操作的一最大频率。
49.如权利要求46所述的操作微处理器的方法,其中通过该处理内核判定于由微码执行的该前段周期中该微处理器所消耗的能量值,以及该处理内核的一能量监视器,用以接收来自该输入端的该指标,以及相应地判定在该微码自该能量监视器读取该能量的多个情况之间的一时间长度中该微处理器消耗的能量值。
50.如权利要求46所述的操作微处理器的方法,其中每一处理内核用以使系统软件可将该列表的一或多个既定值写入该处理内核,该列表包括该既定时间长度、该既定频率以及该既定能量值。
51.如权利要求46所述的操作微处理器的方法,其中该微处理器所消耗的瞬间功率的指标包括正施加于该微处理器的一瞬间电流的指标以及一瞬间电压的指标。
52.如权利要求46所述的操作微处理器的方法,其中当该微处理器的操作温度低于一既定温度时,则每一处理内核用以于高于该既定频率的频率操作该处理内核。
53.如权利要求46所述的操作微处理器的方法,其中当系统软件要求一既定操作频率,则每一处理内核用以于高于该既定频率的频率操作该处理内核。
54.如权利要求46所述的操作微处理器的方法,其中每一处理内核包括一私有随机存取存储器,其无法存取用户指令且只存取该处理内核的微码,其中该微码将多个分格的一阵列存储于该私用随机存取存储器中,该多个分格的该阵列存储于该前段周期的多个接续子集合间存储该微处理器所消耗的能量值。
55.一种计算机程序产品,在计算机装置中嵌入可用的一至少计算机可读存储介质,该计算机程序产品包括在该计算机可读存储介质中嵌入计算机可读程序代码,用以指定一微处理器用以在具有一存储器的一系统中操作,该计算机可读程序代码包括一第一程序代码,指定一输入端,用以接收一外部电源施加在该微处理器的瞬间功率大小的一指标;以及一第二程序代码,指定多个处理内核,其中每一处理内核用以接收来自该输入端的该指标以及判定于前段周期中由该微处理器所消耗的能量值,其中该周期为一既定时间长度;以及操作该处理内核于高于一既定频率的一频率,以响应于该前段周期中判定的由该微处理器消耗所的能量值低于一既定能量值。
56.如权利要求55所述的计算机程序产品,其中该至少计算机可读存储介质可为一光盘、一磁带、或其他磁性、光学性、或电子存储介质以及一网络、电缆线、无线或其他通信介质。
57.一种微处理器,包括多个处理内核,其中每一处理内核用以在每一接续的当时情况下,判定于该当时情况之前的一周期中,由该微处理器消耗的能量值,其中该周期为一既定时间长度;以及操作该处理内核在高于一既定频率的一频率下,以响应于该当时情况之前的该周期中,由该微处理器消耗的能量值低于一既定能量值的判定;其中,该微处理器用以致使所有该多个处理内核同时操作在高于该既定频率的频率下,直到该多个处理内核中的一个判定该微处理器于该当时情况之前的该周期中已经消耗多于该既定能量值的能量。
58.如权利要求57所述的微处理器,其中该既定频率为该微处理器不消耗多于该既定能量值的情况下使该微处理器的该多个处理内核可维持操作长于该既定时间长度的一频率。
59.如权利要求57所述的微处理器,其中该既定频率为系统软件可要求该多个处理内核操作的一最大频率。
60.如权利要求57所述的微处理器,其中每一处理内核包括微码,微码用以致使该处理内核操作在高于该既定频率的频率下,以响应于该当时情况之前的该周期中,由该微处理器消耗的能量值低于该既定能量值的判定。
61.如权利要求60所述的微处理器,其中该微码用以判定于该当时情况之前的该周期中,由该微处理器消耗的能量值。
62.如权利要求57所述的微处理器,其中当该处理内核在时钟于部分的该处理内核中禁用的一休眠状态时,每一处理内核包括一计时器用以计算时间,其中该处理内核还用以根据该计时器计算该当时情况之前的该周期中,由该处理内核消耗的能量值;接收来自该多个处理内核的每一其他者于当时情况之前的该周期中,由该多个处理内核的每一其他者消耗的能量值;以及计算于该当时情况之前的该周期中由该微处理器消耗的能量值,做为于该当时情况之前的该周期中,由所有该多个处理内核消耗的能量值的总和。
63.如权利要求62所述的微处理器,其中该计时器由一自激振荡器驱动,致使就算该时钟被禁用时,该计时器也可持续进行计时。
64.如权利要求62所述的微处理器,其中每一处理内核包括一第二计时器,当该处理内核的时钟为致能时,该第二计时器用以计算时间,其中该处理内核用以根据该第一计时器与该第二计时器计算于该当时情况之前的该周期中,由该处理内核消耗的能量值。
65.如权利要求64所述的微处理器,其中该处理内核的操作频率为来自该微处理器外部的一总线接收到的一时钟信号的一变比,其中该第二计时器由该总线的该时钟信号所驱动,致使其无关于该处理内核的操作频率以一恒定速率进行计时。
66.如权利要求64所述的微处理器,其中每一处理内核用以校正该第一计时器,以响应该处理内核的重置,该处理内核的重置通过计算于该第二计时器的一既定刻点数中发生的该第一计时器的刻点数。
67.如权利要求57所述的微处理器,其中该多个处理内核的每一者用以通过该多个处理内核共享的一存储器,提供于该当时情况之前的该周期中由该处理内核消耗的能量值至该多个处理内核的每一其他者。
68.如权利要求67所述的微处理器,其中该多个处理内核的每一者用以提供于该当时情况之前的该周期中由该处理内核消耗的能量值至该共享存储器的一位置给该多个处理内核的每一其他者,其中每一处理内核用以接收该共享存储器中的该位置的地址,以响应系统软件将该地址写入该处理内核。
69.如权利要求67所述的微处理器,其中该多个处理内核的每一者用以提供于于该当时情况之前的该周期中由该处理内核消耗的能量值至该共享存储器的一位置给该多个处理内核的每一其他者,其中该共享存储器中的该位置的地址存放于该存储器的一系统管理模式SMM区域中。
70.如权利要求57所述的微处理器,其中每一处理内核用以根据通过一外部电源提供至该微处理器的一瞬间功率的一指标,判定于该当时情况之前的该周期中由该微处理器消耗的能量值。
71.如权利要求57所述的微处理器,其中每一接续的该当时情况包括自该列表发生的一事件的一当时情况,该列表包括来自一计时器用以指出超过一既定时间周期的指标,一用以让该处理内核休眠的要求,该处理内核从休眠状态恢复操作,以及一用以更新该处理内核的操作频率的要求。
72.如权利要求57所述的微处理器,其中每一处理内核用以使系统软件可写入该列表的一或多个既定值至该处理内核,该列表包括该既定时间长度、该既定频率以及该既定能量大小。
73.如权利要求57所述的微处理器,其中每一处理内核包括一私有随机存取存储器,其无法存取用户指令且只能存取该处理内核的微码,其中该微码将多个分格的一阵列存储于该私用随机存取存储器中,该多个分格的该阵列于该前段周期的多个接续子集合间存储该微处理器消耗的能量值。
74. 一种操作微处理器的方法,该方法包括通过每一多个处理内核在每一接续的当时情况下,判定于该当时情况之前的一周期中,由该微处理器消耗的能量值,其中该周期为一既定时间长度;以及操作该处理内核在高于一既定频率的一频率下,以响应于该当时情况之前的该周期中,由该微处理器消耗的能量值低于一既定能量值的判定;其中,该微处理器用以致使所有该多个处理内核同时操作在高于该既定频率的频率下,直到该多个处理内核中的一个判定该微处理器于该当时情况之前的该周期中已经消耗多于该既定能量值的能量。
75.如权利要求74所述的操作微处理器的方法,其中该既定频率为该微处理器不消耗多于该既定能量值的情况下使该微处理器的该多个处理内核可维持操作长于该既定时间长度的一频率。
76.如权利要求74所述的操作微处理器的方法,其中该既定频率为系统软件可要求该多个处理内核操作的一最大频率。
77.如权利要求74所述的操作微处理器的方法,其中每一处理内核包括微码,微码用以致使该处理内核操作在高于该既定频率的频率下,以响应于该当时情况之前的该周期中,由该微处理器消耗的能量值低于该既定能量值的判定。
78.如权利要求77所述的操作微处理器的方法,其中该微码用以判定于该当时情况之前的该周期中,由该微处理器消耗的能量值。
79.如权利要求74所述的操作微处理器的方法,其中当该处理内核在时钟于部分的该处理内核中禁用的一休眠状态时,每一处理内核包括一计时器用以计算时间,其中该处理内核还用以根据该计时器计算该当时情况之前的该周期中,由该处理内核消耗的能量值;接收来自该多个处理内核的每一其他者于当时情况之前的该周期中,由该多个处理内核的每一其他者消耗的能量值;计算于该当时情况之前的该周期中由该微处理器消耗的能量值,做为于该当时情况之前的该周期中,由所有该多个处理内核消耗的能量值的总和。
80.如权利要求79所述的操作微处理器的方法,其中该计时器由一自激振荡器驱动, 致使就算该时钟被禁用时,该计时器也可持续进行计时。
81.如权利要求79所述的操作微处理器的方法,其中每一处理内核包括一第二计时器,当该处理内核的时钟为致能时,该第二计时器用以计算时间,其中该处理内核用以根据该第一计时器与该第二计时器计算于该当时情况之前的该周期中,由该处理内核消耗的能量值。
82.如权利要求81所述的操作微处理器的方法,其中该处理内核的操作频率为来自该微处理器外部的一总线接收到的一时钟信号的一变比,其中该第二计时器由该总线的该时钟信号所驱动,致使其无关于该处理内核的操作频率以一恒定速率进行计时。
83.如权利要求81所述的操作微处理器的方法,其中每一处理内核用以校正该第一计时器,以响应该处理内核的重置,该处理内核的重置通过计算于该第二计时器的一既定刻点数中发生的该第一计时器的刻点数。
84.如权利要求74所述的操作微处理器的方法,还包括其中通过该处理内核用以通过该多个处理内核共享的一存储器,提供于该当时情况之前的该周期中由该处理内核消耗的能量值至该多个处理内核的每一其他者。
85.如权利要求84所述的操作微处理器的方法,其中通过该处理内核提供于该当时情况之前的该周期中由该处理内核消耗的能量值至该共享存储器的一位置给该多个处理内核的每一其他者,该方法还包括通过该处理内核接收该共享存储器中的该位置的地址,以响应系统软件将该地址写入该处理内核。
86.如权利要求84所述的操作微处理器的方法,其中该多个处理内核的每一者用以提供于于该当时情况之前的该周期中由该处理内核消耗的能量值至该共享存储器的一位置给该多个处理内核的每一其他者,其中该共享存储器中的该位置的地址存放于该存储器的一系统管理模式SMM区域中。
87.如权利要求74所述的操作微处理器的方法,其中每一处理内核用以根据通过一外部电源提供至该微处理器的一瞬间功率的一指标,判定于该当时情况之前的该周期中由该微处理器消耗的能量值。
88.如权利要求74所述的操作微处理器的方法,其中每一接续的该当时情况包括自该列表发生的一事件的一当时情况,该列表包括来自一计时器用以指出超过一既定时间周期的指标,一用以让该处理内核休眠的要求,该处理内核从休眠状态恢复操作,以及一用以更新该处理内核的操作频率的要求。
89.如权利要求74所述的操作微处理器的方法,还包括通过系统软件写入该列表的一或多个既定值至该处理内核,该列表包括该既定时间长度、该既定频率以及该既定能量大小。
90.如权利要求74所述的操作微处理器的方法,其中每一处理内核包括一私有随机存取存储器,其无法存取用户指令且只能存取该处理内核的微码,其中该微码将多个分格的一阵列存储于该私用随机存取存储器中,该多个分格的该阵列于该前段周期的多个接续子集合间存储该微处理器消耗的能量值。
91.一种计算机程序产品,在计算机装置中嵌入可用的一至少计算机可读存储介质,该计算机程序产品包括在该计算机可读存储介质中嵌入计算机可读程序代码,用以指定一微处理器用以在具有一存储器的一系统中操作,该计算机可读程序代码包括 指定多个处理内核的程序代码,其中每一处理内核用以在每一接续的当时情况下,判定于该当时情况之前的一周期中,由该微处理器消耗的能量值,其中该周期为一既定时间长度;以及操作该处理内核在高于一既定频率的一频率下,以响应于该当时情况之前的该周期中,由该微处理器消耗的能量值低于一既定能量值的判定;其中,该微处理器可致使所有该多个处理内核同时操作在高于该既定频率的频率下, 直到该多个处理内核中的一个判定该微处理器于该当时情况之前的该周期中已经消耗多于该既定能量值的能量。
92.如权利要求91所述的计算机程序产品,其中该至少计算机可读存储介质可为一光盘、一磁带、或其他磁性、光学性、或电子存储介质以及一网络、电缆线、无线或其他通信介质。
全文摘要
本发明提供一种微处理器、操作微处理器的方法以及计算机程序产品。该微处理器用以在具有存储器的一系统中运作。微处理器包括多个处理内核,其中处理内核的每一处理内核用以当检测到一电源事件发生时,计算一第一值,其中第一值代表处理内核在电源事件的一时间间距中所消耗的能量值,其中时间间距的长度为一既定时间值;从存储器中读取一或多个第二值,其中或第二值代表在时间间距中由处理内核的其他者所消耗的能量值,其中或第二值已预先由处理内核的其他者计算出以及写入至存储器;以及根据第一值与或第二值调整处理内核的操作频率。
文档编号G06F1/32GK102221875SQ201110182898
公开日2011年10月19日 申请日期2011年6月30日 优先权日2010年6月30日
发明者G.葛兰.亨利, 史蒂芬.嘉斯金斯, 达鲁斯.D.嘉斯金斯 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1