在运行状态下藉由减少每个时钟的指令率的省电操作的制作方法与工艺

文档序号:12541203阅读:154来源:国知局
本发明涉及一种省电方法,特别是涉及一种应用于微处理器的省电方法。
背景技术
::操作系统可以控制一微处理器在各种性能状态(通常称为P-states)运行。虽然通过桌上型(desktop)或者伺服器系统(serversystems)可以减少电力以及所伴随的消耗,但当只有电池供电给装置时,利用操作系统来控制微处理器的性能状态以延长电池的时间成为一个重要的议题。举例而言,当操作系统检测到工作量相对低时(例如,使用者仅在观看DVD时,微处理所需的操作电量即相对的较小),操作系统可要求微处理器操作在一低性能状态(performance-reducedstate)。一般而言,低性能状态包括将微处理器执行于一较低的时钟频率(reducedclockfrequency),以及一较低的操作电压(reducedoperatingvoltagelevel)。再举例而言,当操作系统需要操作在最低的性能操作状态时(lowestperformancerunningstate),微处理器会降低其操作频率至微处理器仍可进行操作的处理器总线(processorbus)的时钟频率的最低倍频(Ratio),并且要求电源供应器将供应电源降低至微处理器仍可进行操作在最低倍频的最低操作电压。又举例而言,微处理器可包括一相锁回路(phase-lockedloop,PLL)用以接收总线时钟讯号,并且相应地产生核心时钟讯号(coreclocksignal)以作为总线时钟频率的倍频。另外,相锁回路所能产生的倍频数目有限,因此具有一最低倍频。无论如何,就算在最低的性能操作状态下,执行软件所施加在微处理器上的工作量(例如,工作系统以及应用程序所施加的工作量)仍然相对的较小,微处理器亦会因此造成长时间的闲置,导致电源的浪费。举例而言,软件可能仅处于藉由一计时器(occasionaltimer)计时以等待使用者输入的状态(例如,鼠标或者键盘的点击)。一般而言,为了从最低性能操作状态更近一步地降低其电力消耗,微处理器必须自正常工作状态(runningstate)转换至一睡眠状态(sleepingstate)或者一电源状态(powerstate,一般称为C-states),其中微处理器停止执行指令并且执行其他节电措施(powersavingmeasures),例如禁能(disable)微处理器的时钟讯号或者移除微处理器中的部分电源(例如移除快取存储器的电源),如图1所示。图1是用性能状态(performancestates)以及电源状态(powerstates)为函数所绘制的微处理器的电源消耗图。然而,除非操作系统的指令要求微处理器进入睡眠状态,否则微处理器无法进入睡眠状态。因此,当微处理器仍然处于一操作状态无法降低其操作频率时,需要一种可以降低电源消耗的方法。技术实现要素:本发明的一实施例中提供一种微处理器包括多个功能性单元以及多个控制暂存器。控制暂存器可进行写入以致使功能性单元启动一个或者多个动作,其中动作是用以当微处理器操作于一最低性能操作状态时,降低每一时钟的指令率,以减少微处理器的电源消耗。其中,最低性能操作状态包括一非睡眠状态,并且微处理器在非睡眠状态中操作于微处理器所支持的最低时钟频率。本发明的另一实施例中提供一种省电方法,其中省电方法适用于一微处理器。省电方法包括接收用以致使微处理器进入一最低性能操作状态的一命令,其中最低性能操作状态包括一非睡眠状态,并且微处理器在非睡眠状态中操作于微处理器所支持的最低时钟频率。省电方法还包括启动用以减少电源消耗的一个或者多个动作,其中动作是当微处理器相应于所接收用以进入最低性能操作状态的命令而操作于最低性能操作状态时,降低微处理器每一时钟的指令率。附图说明图1是以一微处理器的性能状态以及电源状态为函数的电源消耗的示意图。图2是本发明一微处理器的方块图。图3是本发明图2所示的微处理器的操作流程图。附图符号说明102指令快取存储器104指令格式器106格式化指令缓冲器108指令翻译器112暂存器别名表114指令发送单元116A~116N执行单元118指令退回单元122特别模块暂存器124熔丝126控制暂存器128性能状态切换计数器132使用者禁能标志134计数器138存储器子系统142微码144快取存储器146快取存储器具体实施方式以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。当微处理器为了减少电源消耗而操作在所支持的最低核心时钟频率时,本发明的实施例中所提供的微处理器可选择性并且有效率地藉由一个或者多个不同的动作,来减少微处理器的每一时钟的指令(instructionsperclock,IPC)率。如下所述,但本发明不限于此:(1)虽然微处理器通常可能不根据程序顺序执行指令(out-of-order),但致使指令根据程序顺序执行(in-orderexecution)。让指令根据程序顺序执行的动作可减少推测所执行的指令(speculativelyexecutedinstructions)的数量、减少之后必须取消或者重复执行的指令的数量,并且减少因执行随后被取消或者被重复执行的指令所造成的电源浪费。值得注意的是,上述的随后会被取消或者被重复执行的指令并不会对完成目前所执行的程序提供任何帮助。(2)虽然微处理通常可能在每一时钟周期会发送多个(例如,3个)指令(上述动作称为superscalarissue),但使得每一时钟周期(perclockcycle)仅发送(issue)一个指令(上述动作称为scalarissue)。让每一时钟周期仅发送一个指令的动作可减少执行单元的使用率,并且节省电源消耗。(3)虽然微处理器通常可能在每一时钟周期会格式化多个(例如,4个)指令,但在每一时钟周期仅格式化一个由从一指令快取存储器(instructioncache)所撷取的一可变长度指令串流(variable-lengthinstructionstream)的指令。在一个可变长度指令集(variable-lengthinstructionset)的架构(architecture)中,一字节串流(streamofinstructionbytes)是从指令快取存储器中撷取而来的,并且所撷取的字节串流必须被格式化为多个离散指令(discreteinstructions),使得个别的指令可被解码并且可被转译为更简单的微指令(microinstructions),以传送至执行单元加以执行。因此,微处理器必须决定字节串流中指令与指令间的边界(boundaries)。举例而言,在每一时钟周期仅格式化一个指令相较于在每一时钟周期格式化三个指令简单许多,并且每一时钟周期仅格式化一个指令所需的电力相较于在每一时钟周期格式化三个指令所需要的电力少。再者,在每一时钟周期仅格式化一个指令会使得等待发送至执行单元的指令减少,使得执行单元的使用量减少,以节省电源。(4)虽然微处理器通常可能是以平行方式(parallelfashion)在快取层次结构中存取各种快取存储器,但在快取层次结构(cachehierarchy)中(例如,L1以及L2快取存储器),以串行方式(serialfashion)存取各种快取存储器,可增进效能。举例而言,L1快取存储器以及L2快取存储器是同时以平行方式进行存取,可减少在存取的遗漏事件中的数据访问延迟(dataaccesslatency),其中遗漏事件的存取遗漏是在其中一个快取存储器,而命中令一个快取存储器。但是,为了节省电源,当在存取L1快取存储器中发生一个遗漏(miss)时,才会对L2快取存储器进行存取。在快取层次结构中以串行方式存取快取存储器的动作可减少快取存储器的使用率,并且节省电源消耗。(5)即使指令转译器可在每一时钟周期转译多个巨集指令,但在每一时钟周期中仅转译一个巨集指令(macroinstruction)(例如,x86指令)。指令转译器可进行指令熔断(instructionfusing),但在本发明中会被禁能。在每一时钟周期仅转译一个巨集指令会使得等待发送至执行单元的指令减少,使得执行单元的使用量减少,以节省电源消耗。(6)虽然指令退回单元可在一个时钟周期中退回多个指令,但在一个时钟周期中仅退回一个指令。当指令备份在指令退回单元时,延滞的指令(stalls)可被导入微处理器100的管线(pipeline),因此在一个时钟周期中仅退回一个指令会减少每一时钟周期的指令率,以节省电源消耗。广义而言,藉由避免那些不必要、但通常因推测而执行用以增进效能的工作量,可以减少每一时钟的指令率以降低电源浪费,例如,依序执行相较于非依序执行省电;串行存取相较于并行存取省电。或者,藉由一较大的时间帧(timeframe)对串流(givenstreamofinstruction)进行分散执行(spreadexecution),可以减少每一时钟的指令率以降低电源浪费,例如,纯量发送(scalarissue)相较于超纯量发送(superscalarissue)省电;每一时钟执行一个指令相较于每一时钟进行多个指令省电。更进一步来说,由本发明可知,藉由一较大的时间帧对串流进行分散执行,而非一突发方式(burstymanner)执行,具有更有效地提升动态电源管理的第二个益处,特别是在一多核心微处理的架构中,可使闲置的核心进入睡眠状态。微处理器有时可能不会执行减少每一时钟的指令率的动作,即使当微处理器被下达转换至最低性能操作状态。因此,在本发明的实施例中,微处理器当一个或者多个既定情况存在时,才会发启减少每一时钟的指令率的动作,如下所述,但本发明不限于此:(1)最近一次转换到上述最低性能操作状态前,微处理器操作于一最高性能操作状态的时间是否不超过一既定时间周期?在此条件下可以实现更复杂的变化。举例而言,每一较高性能操作状态可分别具有不同的既定时间周期。另外,先前所执行的N个性能操作状态可被检验,并且根据每一N个性能操作状态所花费的时间计算一加权平均,以获得一计算分数。当计算分数小于一既定分数时,才满足条件。微处理器包括多个计数器,用以提供各种性能操作状态所花费的时间的信息。(2)微处理器操作于最低性能操作状态的时间,是否超过最近的一既定时间周期至少一既定百分比?(3)微处理器是否支持多个性能操作状态(multipleperformancestates)?在一实施例中,部分微处理器可在制造时,经由熔丝被编程,以致使微处理器可支持多个性能操作状态。例如,一部份可被编程为支持多个性能操作状态,如应用于笔记型计算机或者移动电话的移动系统(mobilesystem),另一部份可被编程为不支持多个性能操作状态,例如,应用在桌上型计算机。(4)操作系统是否支持多个性能操作状态?某些操作系统或者操作环境不支持多个性能操作状态,因此无法与微处理器沟通工作量是大或者是小;因此,无法减少微处理器的性能。在本发明的一实施例中,从操作系统启动(booted)或者从微处理器被重置后,微处理器可保留一标志用以指出操作系统是否要求切换至少一性能操作状态。或者,从操作系统启动(booted)或者从微处理器被重置后,微处理器可保留一计数器用以指出操作系统要求切换至少一性能操作状态的次数,并且当计数器的数值大于一既定数值时,微处理器才会启动减少每一时钟的指令率的动作。(5)使用者是否禁能藉由减少每一时钟的指令率以节省电源的动作,例如,经由一基本输出输入系统(BIOS)所设定的选项。本发明中藉由减少每一时钟的指令率以节省电源的动作以及既定情况不限于上述的部分。其它藉由减少每一时钟的指令率以节省电源的动作,以及其他为了满足省电功能的必要条件皆为本发明的范畴。图2所示为本发明所提供的一种微处理器的方块图。微处理器100包括可写入数值的控制暂存器126或者多个标志,用以当微处理器操作在最低核心时钟频率(lowestcoreclockfrequency)时,指出是否应该启动减少每一时钟的指令率的动作,以减少电源消耗。在一实施例中,微处理器100的微码142将数值写入控制暂存器126以致使微处理器100自减少每一时钟的指令率的模式切换回正常操作模式,反之亦然。微处理器100亦包括多个执行单元116用以执行指令。执行单元116可包括但不限于多个整数单元(integerunits)、浮点单元(floatingpointunits)、媒体单元(mediaunits)、单指令流多数据流单元(SingleInstructionMultipleData,SIMDunits)以及分支单元(branchunits)。微处理器100可藉由超纯量方式(superscalarfashion)发送指令至执行单元116,例如,在每一时钟周期发送多个指令至执行单元116。较佳的是,微处理器100操作在减少每一时钟的指令率的模式,藉由纯量方式(scalarfashion)发送指令来减少电源消耗,例如,在每一时钟周期发送仅发送一个指示至执行单元116。微处理器100亦包括一指令快取存储器102用以自系统存储器(未图示)中快取(cache)指令。如上所述,指令是可变长度的,例如指令包括许多复杂指令(complexinstructionsetcomputer,CISC)的结构,例如x86指令集架构。举例而言,指令集中的不同指令可具有不同的长度,例如,长度可在1至13字节(bytes)之间,其不同于需要固定长度指令的精简指令级计算(reducedinstructionsetcomputer,RISC)架构,例如,指令集中的不同指令具有相同的长度,例如32位(bits)。微处理器100亦包括一指令格式器104用以自指令快取存储器102接收具有可变长度指令的一字节串流,并且格式化所接收的字节串流为可区别的多个指令。因此,微处理器还用以决定字节串流中不同指令间的边界,以指出串流中连续的字节分别属于哪个指令。指令格式器104自一控制暂存器126接收一输入讯号。输入讯号用以指出指令格式器104是在哪一种性能下进行格式化。例如,在一高性能操作状态模式下进行格式化,可在每一时钟周期中格式化其可格式化的一个或多个指令。或者,在一低电源模式下,指令格式器104仅在每一时钟周期中格式化一个指令。另外,已格式化的指令存放在一格式化指令缓冲器106中。微处理器100亦包括一指令转译器108用以自格式化指令缓冲器106接收已格式化的指令,并且将所接收的已格式化的指令转译为更简单可被执行单元116所执行的微指令。指令转译器108自控制暂存器126接收自一输入讯号,输入讯号用以指出指令转译器108是在一高性能操作状态下转译或是在低电源状态下转译。在一高性能操作状态下,指令转译器108在每一时钟周期其可转译一个或多个指令;在一低电源状态下,指令转译器108在每一时钟周期仅转译一个指令。另外,已转译的微指令用以提供至一暂存器别名表112(registeraliastable,RAT)。暂存器别名表112用以根据程序顺序接收已转译的微指令,并且产生每一微指令的附属信息(dependencyinformation)。当有即时指令(instantinstruction)依附以被允许发送至一执行单元116执行时,附属信息可用以区别早期指令(olderinstructions)。举例而言,指令可要求一早期指令的结果作为一源操作数(sourceoperand)。暂存器别名表112亦用以自微码142(microcode)接收微指令。当指令转译器108遇到无法转译为一既定数量(例如,3个)微指令的一复杂指令时,指令转译器108可调用(invoke)微码142。举例而言,可调用微码142以回应于致使微处理器100切换至一新的性能操作状态或者电源状态的一指令。另外,相应于其他事件,微码142亦可被调用,例如,中断(interrupt)或者其它例外情况。微处理器100亦包括一指令退回单元118(instructionretireunit)用以使用暂存器别名表112所产生的附属信息,决定何时发送指令至执行单元116执行。指令退回单元118用以自控制暂存器126接收一输入讯号,其中控制暂存器126的输入讯号用以指出指令退回单元118应该在一超纯量(superscalar)的高性能操作状态或者一低电源状态下,发送指令至执行单元116。在超纯量的高性能操作状态下,可在每一时钟周期发送其可发送的一个或多个指令;在低电源状态下,在每一时钟周期仅发送一个指令。微处理器100还包括执行单元116产生读取或者写入要求的存储器子系统138(memorysubsystem)。在一实施例中,存储器子系统138包括一第一级快取存储器144(level-1cache)以及一第二级快取存储器146(level-2cache),其中亦可包括其它级的快取存储器。存储器子系统138用以回应于执行单元116的存储器存取要求,存取快取存储器144/146。另外,存储器子系统138可自行产生存储器存取要求至快取存储器144/146,例如监听要求(snooprequest)、虚拟存储器表的查核(virtualmemorytablewalk)、快取线消除(cachelineeviction)或者快取线定位(cachelineallocation)。存储器子系统138用以自控制暂存器126接收一输入讯号,其中控制暂存器126的输入讯号用以指出存储器子系统138应该在哪一种性能下进行存取。在一高性能操作状态下,是以平行方式存取快取存储器144/146以减少存取的延迟。在一低电源状态下,以并行方式存取快取存储器144/146,例如,先对第一级快取存储器144进行存取,并仅在第一级快取存储器144的存取发生遗漏时,再对第二级存储器进行存取。微处理器100还包括一指令退回单元118用以依照程序顺序退回指令。在某些情况下,指令退回单元118不依照程序顺序退回指令。换言之,指令退回单元118根据依照程序顺序执行指令所产生的结果,更新微处理器100的状态(architecturalstate)。指令退回单元118用以自控制暂存器126接收一输入讯号,其中控制暂存器126的输入讯号用以指出指令退回单元118是否应该在一高性能操作状态下以平行方式存取快取存储器144/146以减少存取的延迟;或者,在一低电源状态下以串行方式存取快取存储器144/146,例如,先对第一级快取存储器144进行存取,并仅在第一级快取存储器144的存取发生遗漏时,再对第二级存储器进行存取。微处理器100亦包括多个特别模块暂存器122(modelspecificregisters,MSR)。特别模块暂存器122可被系统软件写入以及读取用以控制或者决定微处理器100的各种特征的状态。系统软件例如是基本输出输入系统(BIOS)或者操作系统。微处理器100的各种特征的状态包括藉由减少每一时钟的指令率以节省电源的动作。举例而言,基本输入输出系统可回应于被更新的一使用者禁能标志132,允许使用者对特别模块暂存器122进行写入,以禁能藉由减少每一时钟的指令率以节省电源的动作。微处理器100亦包括多个熔丝124用以在微处理器100生产时被烧断,以致能或者禁能各种特征以及各种配置值(configurationvalue),包括致能或者禁能藉由减少每一时钟的指令率以节省电源的动作以及各种相关的参数。例如,哪一个藉由减少每一时钟的指令率以节省电源的动作会被启动。另外,熔丝124可在微处理器100生产时被烧断,以指出微处理器100是否支持多个性能操作状态或者仅支持单一性能操作状态。微处理器100亦包括多个性能状态切换计数器128(performancestatechangerequestcounters)用以计算微处理器被系统软件要求改变不同性能操作状态的次数。另外,微处理器100包括多个计数器134用以在微处理器100操作在每一其可支持的性能操作状态下的一最近的既定时间周期(例如,最近的100,000个核心时钟周期),计算时间量(例如.,核心时钟周期量)。图3是本发明图2所示的微处理器100的操作流程图。流程开始于步骤302。在步骤302中,微处理器100被命令进入其最低性能操作状态,其中进入最低性能操作状态的指令是系统软件在微处理器100仍操作在正常操作状态下希望微处理器100操作于其最低电源消耗的阶级的指示,其中正常操作状态可为非睡眠状态或者操作相关于电源节省动作的睡眠状态。在一实施例中,最低性能操作状态表示将微处理器100操作在其支持的最低核心时钟频率。另外,该命令可来自于系统软件,例如,当对特别模块暂存器122进行写入时,微处理器100调用微码142以回应此写入。另外,该命令可来自于微处理器100本身。例如,微码142可检测到将微处理器操作于其所支持的最低核心时钟频率的一原因。流程进行至步骤304。在步骤304中,微处理器100测试多个既定条件中的至少一个是否存在,以决定是否启动藉由减少每一时钟的指令率以节省电源的动作,例如一个或者多个如上所述的既定情况。举例而言:(1)微处理器100可检验性能状态切换计数器128以决定工作系统是否支持多个性能操作状态。在一实施例中,微处理器100可检验熔丝124和/或特别模块暂存器122,以判断微处器100是否支持多个性能操作状态。(2)微处理器检验操作系统是否支持多个性能操作状态。(3)微处理器100可检验使用者禁能标志132,已决定使用者是否禁能藉由减少每一时钟的指令数以节省电源的动作。(4)微处理器100可检验计数器134所计算的性能状态操作的时间(或者其它微处理器100的指标),以决定微处理器100操作于一较高性能操作状态的时间是否不超过在步骤302接收到要求之前的一既定时间周期,以将微处理器100切换至其最低性能操作状态,其中每一较高性能操作状态可分别具有不同的既定时间周期。在另一实施例中,微处理器100可检验计数器134所计算的性能操作状态操作的时间(或者其它微处理器100的指标),并且根据每一性能操作状态所花费的时间计算一加权平均,以获得一计算分数,以判断该计算分数是否小于一既定分数。(5)检验微处理器操作于最低性能操作状态的时间,是否超过最近的一既定时间周期至少一既定百分比。在一实施例中,只要有一个既定情况存在,即可启动藉由减少每一时钟的指令率以节省电源的动作。在另一实施例中,两个或者更多的既定情况存在,也可启动藉由减少每一时钟的指令率以节省电源的动作。其它可判断何时发启藉由减少每一时钟的指令率以节省电源的动作的既定条件的组合的其他实施例,皆为本发明的范畴。各种既定情况的组合可经由熔丝124和/或微码142设置;再者,上述的既定情况的组合可经由写入特别模块暂存器122覆盖。在一实施例中,微码142在步骤304中执行。流程进行至步骤306。在判断步骤306中,微处理器100使用在步骤304中所获得的信息,判断是否有足够的既定情况存在,以启动藉由减少每一时钟的指令率以节省电源的动作。当微处理器100判断既定情况足够时,流程进行至步骤308;否则,流程结束于步骤306。在步骤308中,微处理器100启动一个或者多个藉由减少每一时钟的指令率以节省电源的动作,例如上述的动作。在一实施例中,微码142写入控制暂存器126,以提供各种功能性单元的控制输入,例如,指令格式器104、指令转译器108、暂存器别名表112、指令发送单元114、执行单元116、存储器子系统138以及指令退回单元118。举例而言,微处理器100可有以下的动作。(1)微处理器100藉由执行单元122根据程序顺序执行指令,取代原本的不根据程序顺序执行。(2)微处理器100藉由指令发送单元114发送单一指令,取代原本的多个指令的发送。(3)微处理器100藉由指令格式器104在一个时钟周期仅格式化一个指令,取代原本在一个时钟周期格式化多个指令。(4)微处理器100以串行方式存取快取存储器144/146,取代原本以平行方式进行存取。(5)微处理器100藉由指令转译器108在每一时钟周期仅转译一个巨集指令,取代原本在每一时钟周期转译多个巨集指令。(6)微处理器100藉由指令退回单元118在每一时钟周期仅退回一个指令,取代原本在每一时钟周期退回多个指令。在一实施例中,在步骤308,微处理器100是以逐步方式(step-wisefashion)启动藉由减少每一时钟的指令率以节省电源的动作。换言之,微处理器100启动一个或者多个藉由减少每一时钟的指令率以节省电源的动作一段时间后,再开启其它另外的藉由减少每一时钟的指令率以节省电源的动作,依此类推,直到所有藉由减少每一时钟的指令率以节省电源的动作都已启动或者系统软件命令微处理器100进入非最低性能操作状态外的其它状态为止。其中,非最低性能操作状态外的其它状态可为一睡眠状态或者一较高性能操作状态,而较高性能操作状态的性能表现状态优于最低性能操作状态。流程结束于步骤308。虽然本发明已经由数个实施例揭示如上,但其仅用以作为例子,并非用以限定本发明。本领域技术人员应能理解,在不脱离本发明的精神的前提下,可对本发明作些许更动。举例而言,软件能够致能本发明的装置和方法的功能、制造、模型建立、模拟、各种性质,和/或测试。其能够藉由不同的程序语言而达成,例如程序语言(如C、C++)、硬件描述语言(hardwaredescriptionlanguage,HDL,如VerilogHDL、VHDL),或是其他可能的程序语言。上述软件能够设置于任何已知的计算机可读取储存媒体(computerusablemedium),例如半导体、磁盘,或光盘(如CD-ROM、DVD-ROM)。本发明的装置和方法可能包括于任何半导体知识产权核心(semiconductorIPcore)之内,例如(以HDL嵌入的)微处理器核心,或是当集成电路制造时,转移至硬件。此外,本发明可能藉由硬件和软件的组合而实现。因此,本发明不应被此处所述的任何实施例所限制,本发明应该是根据本发明的权利要求与其等效的装置/方法而被定义。特别的是,本发明能够设置于一般用途计算机的微处理器装置内。最后,本领域的技术人员应能理解到:在不脱离由本发明权利要求定义的本发明范畴的前提下,其能够以本发明揭示的概念和特定的实施例作为基础,用以设计或修改其他架构来执行与本发明相同的目的。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1