动态电压控制方法与设备 本申请声明了2001年8月29日提交的Allen等人的、标题为“DIGITAL BASEBAND PROCESSOR”的在35 U.S.C.§119(e)下的美国临时申请60/315,655的优选权。以上临时申请被完全包括在本申请中作为参考。
【技术领域】
本发明涉及减小处理器中的功率消耗,更具体地,涉及用于通过确定处理器的时钟频率需求和相应的电压需求而基于处理器的处理状态和/或计算需要,动态控制供给处理器的电压电平的方法和设备。
背景技术
功率消耗和管理是处理器、数字设备、计算机系统等的开发者在设计中所关心的。在电池供电设备中,比如手机、便携式电脑、个人数字助理(PDA)以及其它便携和手持设备,功率消耗可能是决定设备必须重新充电和/或连到交流电源前所能使用的时间长短的一个重要因素。因此,功率消耗可以在很大程度上影响这些设备的使用。
在某些计算机系统和/或数字设备中,功率控制能给出一种二进制的功率状态,其中,第一功率状态对应于空闲处理器,第二功率状态对应于活动处理器。然而,比如在数字设备的处理器中,可能存在多种具有计算需要的活动处理状态,这些计算需要要求不同级别的功率来支持处理状态。
但是,传统的功率控制方法可能没有考虑处理器不同的功率需要。因此,根据处理器的计算需求,设备消耗的功率可能超过处理器计算任务和/或功能所需要的功率。
【发明内容】
根据本发明的一个实施例包括在具有至少一个处理器地系统中动态功率控制的一种方法,该至少一个处理器包括至少一个能以多种频率操作的时钟信号。该方法包括以下步骤:确定该至少一个处理器的一个时钟频率需求;确定支持该时钟频率需求的电压需求;按照该时钟频率需求操作该至少一个时钟信号;按照电压需求提供电压,以支持该至少一个处理器。
根据本发明的另一个实施例包括一个处理器,该处理器包含至少一个能以多种频率操作的时钟信号。该处理器包括:一个或多个钟控元件(clocked component),其接收该至少一个时钟信号;和控制器,其连接至这些元件中的至少一个,以决定处理器的时钟频率需求,该控制器适于根据处理器的时钟频率需求决定电压需求,并且对到由时钟频率需求和电压需求定义的功率状态的转换进行排序。
根据本发明的又一个实施例包括一个控制器,以动态控制到处理器的功率。该控制器包括:多个寄存器,用来存储表示处理器时钟频率需求的信息;比较器,其连接至这多个寄存器,该比较器设计成根据存储在多个寄存器中的信息来确定电压需求;以及一个序列发生器,其连接至比较器,以接收电压电平信号,该序列发生器被设计成用来将处理器转换到由时钟频率需求和电压需求确定的功率状态。
根据本发明的又一个实施例包括:一个由至少一个处理器组成的低功率设备,该至少一个处理器带有多个可按多种时钟信号操作的钟控元件;一个为该至少一个处理器提供可变电压的电源;一个控制该多个时钟信号的频率的时钟控制器;一个连接到该电源和时钟控制器的动态功率控制器,该动态功率控制器用来监控该至少一个处理器,确定其时钟频率需求,并根据这个频率需求确定电压需求,该动态功率控制器被设计成将该电源和时钟控制器转换到由时钟频率需求和电压需求确定的功率状态。
【附图说明】
图1说明了一个示例处理器的不同子系统的一个框图;
图2说明了向图1中所示处理器的不同元件产生和分配时钟信号的定时方案和控制;
图3说明了处理器的示例时钟信号在不同操作模式下如何作为时间的函数而变化的图表;
图4说明了根据本发明的一个实施例的具有动态功率控制功能的处理器;
图5说明了根据本发明的一个实施例,为处理器提供动态功率控制的方法;
图6说明了根据本发明的动态功率控制器的一个实施例;和
图7说明了根据本发明的动态功率控制器的另一实施例。
【具体实施方式】
很多设备中,尤其是由电池供电的设备,减少设备的处理器消耗多余功率的时间量是很有益处的。当可以以低功率状态执行处理器的计算任务、功能和操作和/或满足处理需要时,就认为处理器消耗了多余的功率。名词“处理器”一般指执行逻辑操作、计算任务、控制功能等的任何设备。一个处理器可以包括一个或多个子系统、元件、和/或其它处理器。典型的处理器包括不同的逻辑元件,这些逻辑元件使用时钟信号进行操作来锁存数据、推进和/或排序逻辑状态、同步计算与逻辑操作和/或提供其它定时功能。
申请人观察到,一个设备的功率消耗与供给设备的处理器的电压的平方相关,并且与处理器工作的频率成比例。设备的功率消耗可以表示为:
PD=cV2F(方程1)
这里:
V=供给设备的电压(即Vdd与Gnd之差)
F=频率(例如设备的时钟频率)
c=由以V和F工作的电路所决定的常量
此外,申请人也认识到,操作处理器所需要的电压可能是时钟频率或者正在提供并分配给处理器的频率的函数。相应地,一种减小设备功率消耗的方法就是动态调整提供给处理器的时钟信号的频率,以表现处理器的时钟频率需求。
名称“时钟频率需求”一般指提供给处理器的时钟频率或时钟频率集,其是支持处理器的任务、功能和/或计算需求所必需的。一般来讲,频率低于时钟频率需求的一个或一组时钟信号不足以操作逻辑门、触发器、和时钟信号要供给的其它钟控电路和元件,也不足以在要求的时间量内完成任务,和/或不能执行处理器的一个或多个操作。
如上所述,处理器要求的电压可能是提供并分配给处理器的时钟频率或时钟频率集(即时钟频率需求)的函数。同样,当处理器的计算需要低时,处理器可以具有降低的时钟频率需求。因此,支持时钟频率需求所必需的电压,即电压需求,也会相应降低。
名称“电压需求”一般指提供给处理器来支持给定时钟频率需求的一个或多个电压电平。特别地,电压需求指示足以按照时钟频率需求驱动处理器的不同时钟信号而不引起钟控元件操作错误(例如存储器访问错误、定时违规、临界速度路径延时等)的一个电压值或者电平。尽管可能存在支持时钟频率需求的许多电压电平(例如超过某一最小电压的电压),电压需求一般指更加接近满足时钟频率需求的电压电平。
由于处理器的计算需要随时间变化,就有可能同时减小施加于处理器的时钟信号频率和电压电平(即处理器可以被转换到一种低功率状态)。因此,设备的功率消耗能被动态的调整为表示处理器的处理需求。相应地,本发明的一个具体实施例包括确定处理器的一个时钟频率需求,以及调整供给处理器的电压来支持确定的时钟频率需求。
图1说明了一个示例处理器20的框图。处理器20可以例如在一个单半导体芯片上制造。处理器20包括一个数字信号处理器(DSP)子系统22、一个微控制器(MCU)子系统24、系统存储器28以及外围子系统26。处理器的不同子系统连到系统总线30,以在不同元件间通信和/或传输数据,比如操作数或指令、地址和/或控制信号等。
DSP子系统22可以包括一个高速数字信号处理器。数字信号处理器的操作特征是实时执行、计算密集且经常时间危急的任务、和频繁的内存访问等。MCU子系统24例如可以执行多种控制功能、协调系统事件、执行系统软件等,并且可以以比DSP低的时钟频率执行。系统存储器28可以是片载存储器,比如RAM,它提供了被处理器20的不同子系统所共享的存储资源。外围子系统26可以包括处理器与片外设备或其它处理器通信所需要的多种接口和逻辑。例如,外围子系统26可以与片外功率管理芯片通信或访问片外存储器。此外,该外围子系统可以包含支持不同通信标准的接口,例如串行、红外数据联合(IrDA)、通用串行总线(USB)、SIM接口等。
此处将使用图1中描述的处理器及其相似变型来图示或说明本发明的不同方面,但应注意,该处理器的元件和子系统在这里始终仅作为示例。发明并不在处理器实施例中元件的数量、类型或结构上受到限定。任何具有能随时间变化的时钟频率需求的设备、处理器和/或逻辑电路都可以被认为在本发明的范畴之内。
作为示例,DSP子系统22也包含多个元件,包括:一个暂时存储器(scratch memory)、一个协处理器、中断控制器、一个专用总线等。DSP子系统本身的不同元件也可以有独立的时钟频率需求。同样地,其它处理器元件,如MCU子系统24和外围子系统26,也可能包含多个时钟频率需求。因此,该处理器的时钟频率需求会频繁变化,即,该处理器的活动状态可能有很多操作模式。
同样,处理器20可以有随时间变化的时钟频率需求。举例来讲,在某些操作模式中,DSP可能处于空闲状态。那么,DSP执行特定计算任务所需的高频率时钟信号在这些模式中就不是必需的。名词“操作模式”特征化了处理器不同元件的处理状态或处理状态集,其导致了处理器的特定的时钟频率需求。典型地说,一种操作模式表现处理器的一个处理状态,在该状态中,处理器可能转换到一个不同的功率状态。
为了给处理器提供它需要的不同时钟信号,单一的低频率时钟,这里指系统时钟,经常被提供给处理器作为时钟参考。处理器所需的不同时钟频率就会由系统时钟产生并被适当地分配给处理器的子系统和/或元件。处理器所需的不同时钟频率经常由一个锁相环(PLL)倍频器从系统时钟产生,使得分配到处理器元件的时钟信号与公共的参考时钟同相。即,分布在处理器内的时钟信号被同步。
图2说明的是一个示例的系统定时方案,例如将需要频率的时钟信号分配给处理器20的不同元件。图2中示出了可以是处理器20一部分的示例元件集,包括DSP 22a、协处理器22b、DSP总线22c(例如连接DSP子系统22的专用总线)、DSP SRAM 22d(例如缓存、暂时存储器等)、MCU 24a、系统存储器(SMEM)28、外围总线26a和外部总线(EBUS)26b。名词时钟域一般指一个时钟信号以及该时钟信号通常操作的一组频率。一般来讲,在时钟域内操作的元件有一个或多个钟控元件(例如逻辑门、触发器等),这些元件以各个时钟域的频率集操作。一个元件可能在超过一个时钟域操作;反之,一个时钟域可用于多于一个元件。
处理器20所需的不同时钟信号和时钟信号频率是由时钟控制110的元件提供并分配的。特别地,时钟控制110包括一个系统时钟信号82和系统PLL倍频器114。系统时钟信号82,或简单讲系统时钟,是作为同步分配给处理器的多种其它时钟信号的参考而提供的。系统PLL倍频器114接收系统时钟信号82,提供高频时钟信号84,并将该高频信号锁定为与系统时钟信号同相。通常来讲,时钟信号84是系统时钟的若干倍。
图2给出了由系统时钟信号82和PLL时钟信号84所产生的三个主的时钟域:时钟域90a、时钟域90b和时钟域90c。处理器20的元件在这些时钟域内操作。例如,DSP 22a和协处理器22b可以在时钟域90a内操作;DSP总线22c和DSP SRAM可以在时钟域90b内操作;MCU 24a、SMEM 28、外围总线26a和外部总线(EBUS)26b可以在时钟域90c内操作。
每个时钟域内的时钟信号由不同的选择器、除法器和门逻辑提供,并通过多个时钟树50a-50h分配到处理器的元件。例如,时钟控制110在每个时钟域内都包括多路复用器(例如分别有多路复用器70a、70b、70c),这些多路复用器可独立地选择是否需要时钟信号84以在相应时钟域内操作元件。同样地,也可以旁路掉时钟信号84并将系统时钟信号82提供给处理器的适当元件。
另外,时钟控制110可以将时钟信号84的频率分频,以提供降低频率的时钟信号给处理器的元件,满足处理器的时钟频率需求。特殊地,分频器62和64允许时钟信号84的频率降低。例如,当选择了来自系统PLL倍频器的时钟信号时,分频器62就可以给正在时钟域90b内操作的钟控元件提供频率是时钟信号84一半的时钟信号。相似地,分频器64可以给在时钟域90c内操作的钟控元件提供具有以因子2、4、6、8、10、12、14减小的频率的时钟信号。分频器62和64可以是例如n分频计数器或等同的元件,用于减小时钟信号的频率。对每个时钟域选择的不同分频器因子可以例如由分频器选择66来选择。
图2说明的定时方案中有多个消耗功率的阶段。比如,系统PLL倍频器114可以包括一个压控振荡器(VCO)用来产生时钟信号84。如一般技术人员所知,压控振荡器给振荡器提供一个电压,以产生频率与所提供电压成比例的信号。那么,产生时钟信号84所消耗的功率就与所产生的频率成比例。
除此之外,为了给不同的钟控电路提供时钟信号,处理器的逻辑门、触发器等、时钟分布树或简单讲时钟树,是在处理器的元件和/或子系统内提供的。例如,时钟树50a驱动时钟域90a的时钟信号并将它分配给DSP 22a的低电平元件。相似地,时钟树50e驱动时钟域90e的时钟信号并将它分配给MCU 24a的低电平逻辑元件。给不同的时钟树充电需要能量,因此,当相关元件处于空闲状态时,如果时钟树可以禁用,能量就可以被保存。而且,另外的时钟门逻辑可以包括在时钟树内,用来在更精确的粒度上控制功率消耗,即关闭时钟树分布网络的某些部分。
那么,通过识别处理器的时钟频率需求,当产生过多的时钟频率时,时钟控制100就可以设计频率分布来减少间隔。另外,时钟控制110可以根据处理器的时钟频率需求控制不同时钟树或部分时钟树的禁用。
应注意,图2所示的定时方案仅用作示例,是用来说明处理器所需的不同时钟信号可以被控制并分配到处理器的元件和/或子系统的一种方案。然而,对于本领域熟练技术人员,将有多种系统定时方案来满足特定的定时需求集。例如,图示的系统时钟被PLL倍频器提供的时钟信号多路复用。但系统时钟也可以作为独立于PLL时钟信号的单独时钟域而考虑并分配。系统定时方案的特殊设计选择是没有限制的,而且不同的选择、修改和改进都被看作在本发明的范畴内。
图3是一个说明分配给处理器的不同时钟频率如何随时间变化的图表。图300表示某个基带处理器系统定时方案的四个时钟域的示例频率值,它们可能随时间变化。图3中,产生示例时钟频率需求函数的基带处理器可能与图1中处理器20相似。时钟域310用虚线代表,时钟域320用常规实线代表;它们可能分别与图2中的时钟域90a、90c相似。时钟域330用短划线代表,比如,可以是一个系统时钟域。此外,基带处理器包括基带时钟域340,用粗线代表,用来提供基带时钟给处理器的适当元件。无线通信中使用的处理器通常与外部同步,而且遥控设备通常通过低频基带时钟操作。
坐标图300上方标注的是一系列操作模式,用O1-O9表示。注意,操作模式可以按照任意多的方式划分,要根据处理器的设计和期望粒度的级别决定。例如,在一个时钟域内的每一频率变化都可认为是一种不同的操作模式。
在操作模式O1,基带时钟330是仅有的使能的时钟。所有其它时钟都禁用。举例来讲,如果基带处理器被用在手机中,例如,操作模式1就发生在手机打开但并未使用的状态(即待机模式)。在某个时刻t1,发生一个事件要求例如DSP的处理功率。那么,系统时钟330被使能,提供产生最大时钟率的PLL。这个触发了转换到第二操作模式的事件可能需要从时钟域310和320内的元件进行处理。那么,所有的时钟树就可以被使能。过一段时间后,执行需要可能会减少,时钟频率会逐步降低(例如,从系统PLL倍频器产生的时钟信号的频率可能会降低)。
在时间t2,需要时钟域310和320的任务可能完成,处理器的计算需要降低。那么,系统PLL倍频器就可能被旁路掉了,只保留系统时钟和基带时钟被使能。在时间t3,可能发生另一事件,其中处理器要求产生如操作模式O4所示的活动时钟域的结构。同样,操作模式O5-O9表示可能导致图2中所述的相应时钟需求的其它处理状态。
相应地,由于计算需要随时间变化,降低的处理需求就会提供时钟信号频率降低的机会。而且,在某些操作模式中,某些时钟域可能不是必需的,所以关联的时钟树就可能被禁用。响应于变化的时钟频率需求,可以调整供给处理器的电压来支持时钟频率需求变化的需要。那么,降低的时钟频率需求可以具有降低的电压需求。
申请人已认识并注意到,通过监控处理器的时钟频率需求,可以动态控制供给处理器的电压,使得处理器花费较少的时间给处理器提供超过需求的电压。
图4所示是本发明的一个具体实施例,它包含一个具有动态功率控制(DPC)功能的处理器20’。为说明需要,处理器20’包括了如图1中所表示和描述的子系统。
处理器20’操作过程中,子系统的计算需要可以随时间变化。那么处理器的时钟频率需求也可能随着不同元件和子系统转换到不同的处理状态而改变。动态功率控制(DPC)100可以连到系统总线30,以和处理器20’的不同子系统通信。动态功率控制器110还可以用其它不同的方法与子系统通信,例如共享具有适当互联的寄存器等。
图4中,处理器20’是由片外功率管理40来供电的。虽然功率管理40在图中表示为位于片外,它也可以与处理器位于同一半导体芯片上。功率管理40可以是能够提供电源的任何元件,它通常提供由接收功率的元件所指定的电压电平。举例来讲,功率管理40可以包括可被访问和写入的读/写寄存器,以请求特定的电压电平。
为了向功率管理指示要供给处理器的电压电平,DPC 100连接到寄存器180。比如,功率管理可以是一个低泄漏(LDO)电压调节器。功率管理可以包括LDO控制182,当寄存器180中指定的电压电平稳定时做出指示,功率管理可以在供电线142上提供。
此外,DPC 100还连接到时钟控制110。例如,处理器20’可以带有与图2中所示的基本相同的系统定时方案。那么,时钟控制110就可以包含不同的元件和逻辑门来分配时钟信号给处理器的不同子系统。例如,时钟控制110可以包括一个系统PLL倍频器、旁路多路复用器、分频器选择、禁用逻辑、时钟树等,如图2所示。
时钟控制110可以包括一个连接到系统PLL倍频器上的可写寄存器,用来存储由系统PLL倍频器输出的频率。该寄存器还可以存储VCO产生期望频率所需要的电压值,或提供期望频率所需要的输入时钟信号的一个倍数比率,或者指示系统PLL倍频器产生的高频输出时钟信号的期望频率的其它一些值。此外,时钟控制可以包括寄存器或可以控制不同时钟域内分频器的期望分频因子的其它控制装置。例如,分频器选择可以包括存储期望分频因子的一簇寄存器。另外,时钟控制110可以包括允许不同时钟域关闭、时钟树单独禁用和/或时钟树部分禁用的逻辑。
DPC 110监控处理器20’来确定元件和/或子系统的处理状态,以确定处理器当前的时钟频率需求。为满足该时钟频率需求,DPC 110确定支持该时钟频率需求所需的电压电平。DPC 100随后指示功率管理40调整供给处理器的电压,并指导时钟控制110将符合处理器时钟频率需求的频率分布提供给不同的子系统和元件。
注意,控制器(例如动态功率控制器100)可采用多种方式实现,来执行控制器的不同功能,比如用专用硬件(例如不同的电路、预编程的逻辑阵列、有限状态机(FSM)等)或者用使用软件(例如微码)编程的一个或多个处理器。也应注意,根据本发明的不同实施例的控制器的实施例可以包括硬件、固件和面向软件的元件。
图5是一幅流程图,它描述了根据本发明动态调整供给处理器的功率的一种方法。举例来讲,DPC 100可以使用下面描述的方法来动态控制供给处理器20’的电压。
步骤210中,DPC监控处理器的时钟频率需求。时钟频率需求的变化可能表示供给处理器的电压电平可能被降低,或者表示处理器的处理命令现在需要额外的电压,以支持新的时钟频率需求。因此,步骤220中,估算时钟频率需求,以确定支持新的时钟频率需求所必需的电压需求。
举例来讲,时钟频率需求可能代表每个时钟域为执行其内元件操作的功能和/或计算任务所需要的最小频率。因此,为了确定系统的电压需求,DPC可以选择最大值,其被称为最大—最小频率值。
本领域熟练技术人员会采用由处理器的时钟频率需求确定电压需求的其它方法,这些方法可能要由特定处理器实施方式的定时方案决定。例如,在确定电压需求时,DPC可能考虑在新的时钟频率需求情况下,哪些时钟树可以被禁用。确定电压时,DPC也可以不仅仅考虑时钟频率需求的最大最小值。根据给定时钟频率需求确定电压需求的不同方法被认为在本发明的范围之内。
在步骤230中,确定足以支持时钟频率需求的电压电平。步骤240中,将正提供给处理器的当前电压电平与在步骤240中确定的电压需求进行比较,以确定提供该电压需求所需的电压变化,或δ。
如果电压改变的符号为正(即电压需求大于当前电压电平),就进行随后的一系列事件以转换到较高功率状态,如步骤250a和260a所示。因此,电压需求表示的电压电平被首先转换。例如,DPC可以请求功率管理增加电源电压来满足处理器的电压需求。新电压电平完全转换完后(即新电源电压稳定),时钟频率需求所指示的新频率分布就可以应用于处理器的不同子系统。举例来讲,DPC可以指示时钟控制根据处理器的时钟频率需求来分配时钟信号。
如果电压改变的符号为负(即电压需求小于电压电平),就进行随后的一系列事件以转换到较低功率状态,如步骤250b和260b所示。因此,时钟频率需求表示的频率分布被首先提供给处理器的子系统和元件。当处理器按照新的时钟频率需求操作时,供给处理器的电压就减少至步骤230中确定的电压需求所表示的电压电平。
电压和频率的转换可以按照上面描述的顺序排列,以避免处理器的错误操作。举例来讲,为访问存储器的时钟频率需求。随着对于固定电压的频率增加时,可能存在访问存储器失败的点。因此,为了在功率状态转换过程中避免这种潜在的问题,当向较高功率状态转换时,电压可以在时钟频率增加前升高。当向较低功率状态转换时,频率应在减小供给处理器的电压前首先降低。
联系图5所介绍的方法可以用多种方法和不同的设计、实施方式来实现。图6给出了根据本发明的DPC的一个实施例。该图解说明了动态功率控制的一种硬件解决方案。DPC 100’包括一簇寄存器610、比较器620、随机存储器(RAM)630、功率序列有限状态机(FSM)640和重置寄存器650。图中DPC 100’表示成控制处理器20”的子系统,具体说,处理器20”的子系统包括前面介绍过的那些子系统、元件和定时方案。功率由功率管理40供应给处理器。
寄存器610存储表示处理器20”时钟频率需求的信息。例如,寄存器610可以存储每个时钟域需要的频率值。此外,可能有一寄存器与时钟域内操作的每个子系统都关联,用来表示每个时钟域中的每个子系统所需要的时钟频率。寄存器的特定数量、排列和联系是设计选择的问题,恰当指示处理器频率需求的任何改变都被认为在本发明的范围之内。
比较器620比较存储在寄存器610内的频率值,以确定为了支持寄存器簇指示的时钟频率分布所需要的电压。确定电压需求的一种方法是从寄存器簇中选择最大频率(即比较器从处理器的时钟频率需求中选择最大最小值)来确定电压需求。该频率值,例如,可以指示系统PLL倍频器提供的时钟信号所需要的频率。那么电压需求就可以,至少部分上,基于系统PLL倍频器的信号发生器(例如压控振荡器)产生所指示的频率所需要的电压电平。
RAM 630可以,例如,存储查找表,它包含支持处理器的不同时钟频率需求所需要的电压值。因此,比较器620就能映射选中的频率值或者将寄存器610中指示的频率需求映射到RAM 630中的一地址。从RAM 630得到的电压电平对应于与处理器频率需求相关的电压需求。
注意,本领域熟练技术人员可以看出对时钟频率需求编码来确定支持处理器以特定时钟频率需求操作的电压电平的多种方法。处理器的设计、定时方案及其它的处理器需求和考虑可以用来指导从时钟频率需求到电压需求的特定映射方案。然而,这些变化并不脱离本发明的范围。
从RAM 630得到的电压值随后提供给功率序列有限状态机(FSM)。功率序列FSM随后将处理器转换到由时钟频率和电压需求所指示的功率状态。例如,功率序列FSM可以通过读取寄存器180中储存的电压值来检查正提供给处理器的当前电压电平,以确定满足处理器电压需求(例如从RAM 630得到的电压电平)所需要的电压变化的符号。
如果电压变化的符号为正,功率序列FSM就可以首先指导功率管理40来提供期望的电压电平(即DPC 100’可以将期望的电压电平写入寄存器180)。当功率管理40表示电压电平已经转换完成并且稳定(即功率管40经由线路184指出电压稳定)后,功率序列FSM就可以指导时钟控制110来增加不同时钟域的频率,以满足处理器的时钟频率需求。
举例来讲,功率序列FSM可以指示时钟控制110增加从系统PLL倍频器输出的时钟信号的频率。功率序列FSM也可以访问一寄存器,该寄存器指示系统PLL倍频器应该输出什么时钟频率。
如果电压变化的符号为负,功率序列FSM就首先指导时钟控制110降低不同时钟域的时钟频率,以反映处理器的时钟频率需求。一旦频率降低,功率序列FSM就指导功率管理按照从RAM得到的电压电平修改提供给处理器的电压。由此,功率序列FSM确保功率状态的转变按照可避免处理器潜在操作错误的顺序进行。
重置寄存器650在启动/重置过程中向功率序列FSM 640提供有效的电压电平。由于启动/重置过程中存储在RAM 630中的信息可能并不可靠,重置寄存器650确保足以支持在重置/启动、各种引导事件等中涉及的任务的电压将被提供给处理器。因此,存储在重置寄存器650中的一个或多个值可能只在启动/重置过程中才被选择。
每次存储在寄存器簇中的一个值发生变化时,比较器都重新估算处理器的时钟频率需求,以确定电压电平是否可以或应该改变,以适应新的时钟频率需求(例如,比较器620决定处理器是否可以转换到一个新的功率状态)。例如,可以由处理器(例如DSP或MCU)上运行的软件来写入寄存器簇610。举例来讲,参考处理器20”,考虑一种操作模式,该模式中DSP正处理一高优先级的任务,此任务需要300MHz频率的时钟。同时MCU处理一个需要60MHz频率时钟的任务。
因此,DSP和/或MCU上运行的软件可以将不同时钟域要求的频率写入寄存器簇610中相关的寄存器(例如,与时钟域310相关的寄存器可以存储300MHz的频率值,而与时钟域320相关的寄存器可以存储60MHz的频率值)。
比较器620可以实现最大最小选择方法。相应地,比较器可以选择300MHz的频率值作为用于确定处理器电压需求的基础。从最大最小值可以推断出一个指向RAM 630的索引,例如,300MHz的值可以映射到存储器内存储1.5伏电压值的地址。因此,功率管理可能正向处理器提供1.5伏的电压以支持处理器当前的时钟频率需求。
在某些时间点,处理器可能完成了它的高优先级任务,则处理器的计算需要就会降低。举例来讲,DSP可能仅仅请求180MHz的时钟来满足当前计算的处理要求。例如,DSP上运行的软件可能识别出这个减小了的DSP时钟频率需求,并将新的频率值写入适当的寄存器。DPC 100”随后检测寄存器簇中存储的一个值的变化。相应地,比较器620重新估算处理器的时钟频率需求并确定新的最大—最小频率值为180MHz。这个新值就可能映射到例如RAM 630中1.2伏的值。
功率序列FSM接收这个新的电压值,并确定需要一个负电压转换来反映支持处理器新的时钟频率需求所需的电压需求。因此,功率序列FSM就会指导降低系统PLL倍频器的倍频选择值,以支持180MHz的时钟信号。PLL提供了降低的频率以后,功率序列FSM就将1.2伏的值写入寄存器180。然后功率管理40读取该值并向处理器提供这个新的、已减少的电压电平。因此,处理器就会运行于一种反映处理器时钟频率需求的降低的功率状态。
比较器并不需要根据最大—最小值确定查找表中的索引。例如,比较器可以用多种方法考虑存储在寄存器簇中的不同时钟频率。举例来讲,时钟域310的180MHz时钟频率可以用一个较低的电压支持,如0.9伏。但由于其它时钟域的需求(例如时钟域320为75MHz,而系统时钟分布为26MHz),0.9伏可能不足以支持处理器时钟频率需求。比较器可以设计成识别出0.9伏电压无法支持该时钟频率需求,因此,即使最大最小值本身可以由较低的电压支持,前面讲的时钟频率需求也可能映射到一个1.2伏的电压需求
后面的某个时刻,MCU可能完成了其任务,只需要45MHz时钟来满足当前处理状态的计算需求。运行于MCU上的软件就例如能识别该新的处理状态,并将新的频率值写入适当的寄存器。
响应于寄存器值的变化,即使最大—最小值保持不变(如180MHz),比较器也会确定处理器的时钟频率需求已被修改。举例来讲,新的时钟频率需求可以映射为0.9伏的电压电平。然后功率序列FSM根据前面描述的顺序转换到降低的功率状态。而MCU要求的频率变化(如45MHz)可以通过调整适当时钟域的分频因子而产生。这样,PLL的倍频器选择值在一些功率状态转换中就不会降低。
后面某个时刻,DSP可能需要处理另一个高优先级任务。因此,软件识别出DSP新的时钟频率需求,如240MHz,并将该值写入适当的寄存器。随后,比较器重新估算处理器的时钟频率需求,并确定需要一个新的电压需求来支持处理器当前的时钟频率需求。接下来,比较器会指向存储器,并且一个对应的电压值,例如1.5伏,被发送给功率序列FSM。功率序列FSM确定需要电压电平的正向变化来满足新的电压需求。
因此,FSM首先会将这个新的电压值写入寄存器180,以确保转换供给处理器的电压。功率管理40读取该值并指示电压已经转换完毕且稳定后,FSM就开始给时钟控制排序,以提供较高的时钟频率需求(例如,功率序列FSM可以修改或者指导时钟控制去修改倍频器选择值,以增加系统PLL倍频器产生的时钟信号的频率)。
可能有其它因素和/或处理条件影响支持特定时钟频率需求所需的电压电平。例如,可能被完全禁用的时钟树的数量也可能影响电压需求。因此,DPC100”可以不仅仅考虑频率值。举例来讲,DPC可以考虑时钟域内哪些时钟域或哪些时钟树在一个给定的操作模式下可以被禁用。
图7是本发明的另一个实施例。寄存器组610’存储指示处理器频率需求的信息。例如,寄存器组610’可能包括对于处理器的每个主要子系统的一个寄存器。每个寄存器可以保存一个二进制指示,该指示指出关联的子系统是否需要一个特定时钟信号或一个特定时钟域的时钟信号。因此,寄存器组610’的宽度W就与提供和分配给处理器的时钟信号的数量相关联。
举例来讲,假设寄存器610a’对应于DSP子系统的频率需求。根据子系统的计算需求,DSP就可以指示它需要哪种时钟信号来满足当前的处理需求。DSP可以例如在转换到空闲状态前通过向寄存器610a’的每一比特写入一个0来表示这样一个时钟频率需求。或者,例如即使在空闲状态时,如果DSP也需要一个系统时钟信号,DSP就将在对应于系统时钟的位置指示1。处理器的其它子系统也同样会指出需要哪种时钟信号,用来执行特定操作模式的功能和/或计算任务。
由此,比较器620’就可以将二进制时钟指示映射到存储器中存储一电压电平的地址,该电压电平用于支持寄存器组610’存储的频率需求所指示的时钟信号结构。在一个具体的实施例中,每个时钟域都有一个与之相关的频率,当子系统指示需要该频率时,时钟域使用该频率操作。举例来讲,当DSP子系统指示它需要该时钟信号时,就考虑最大的时钟率,比如在图3所示的时钟域310内。
在该实施例的一个方面中,比较器620’包换软件,此软件考虑由寄存器组610’指示的时钟信号结构,并确定需要的时钟频率。举例来讲,如果MCU子系统和DSP子系统都需要域310内的时钟信号,软件就可以识别出该频率需求由DSP引导。如果MCU指示需要时钟域310内的时钟信号,而DSP指示不需要它,软件就会确定该时钟信号的频率可以降低,因为事实上是MCU将引导该需求。软件确定的频率需求随后就被映射到存储器的某个地址,该地址保存了能支持此时钟频率需求的电压电平。
或者,寄存器610a’可以为每个子系统包括两个寄存器。第一寄存器可以为处理器的每个时钟信号包含一比特,其指示当处于活动状态时子系统是否需要该时钟信号。第二寄存器也可以为处理器的每个时钟信号包含一比特,其指示当处于空闲状态时子系统是否需要该时钟信号。
某些实施例中,RAM 630可以用一个可编程逻辑阵列PLA来代替。例如,比较器可以将有关处理器时钟频率需求的信息(例如,存储在寄存器簇、存储器等中的)映射到一个编码输入。该可编程逻辑阵列可以被编程为提供来自编码输入的输出,用来指示支持时钟频率需求所需的电压电平。如前所述,从时钟频率需求到PLA输入的编码是由处理器的不同设计考虑决定的。
一种在功率控制中获得较高粒度级别的方法涉及包含任务简表中特定任务、过程和/或相关任务组的时钟频率需求。举例来讲,当特定的任务或工作要处理时,例如处理调度程序就可以从任务简表中提取频率需求信息并更新DPC的寄存器组。此更新可能调用处理器的功率转换。因此,处理器就可以工作在这样的功率状态,其反映在任务或者进程级的处理器需要的功率状态。
本领域的技术人员也会在向处理器提供功率控制以减小处理器以过多功率操作的时间方面做其它修改、变化和改进,这些也属于本发明的范畴之内。
已经详细介绍了本发明的几个具体实施例,本领域的技术人员也可以作出多种修改和改进,这些修改和改进也属于本发明的范畴。相应地,前面的介绍仅作为示例,不代表对本发明的限定。本发明只由下面的权利要求及其等效物所定义的而限定。