用于减小时钟闭锁引起的电压下降的装置和方法与流程

文档序号:19735515发布日期:2020-01-18 04:25阅读:229来源:国知局
用于减小时钟闭锁引起的电压下降的装置和方法与流程

相关申请的交叉引用

本申请要求于2017年6月5日向美国专利商标局提交的非临时申请no.15/614,358的优先权和权益,其全部内容通过引用合并于此。

本公开总体上涉及时钟闭锁(ungating)领域,并且具体地涉及减小时钟闭锁引起的电压下降。



背景技术:

在数字电子电路设计中,时钟信号用于同步地控制数字状态转换。也就是说,时钟信号的使用以可预测的方式促进数字状态转换。在一个方面,高速数字电子技术的进步导致时钟速度越来越高,例如达到了千兆赫(ghz)范围。更高时钟速度的结果之一是数字电路系统的功耗(例如,dc功耗)对应地增加。



技术实现要素:

下面给出了本公开的一个或多个方面的简化概述,以便提供对这些方面的基本理解。该概述不是本公开的所有预期特征的广泛概述,并且既不旨在标识本公开的所有方面的关键或重要元素,也不旨在界定本公开的任何或所有方面的范围。其唯一目的是以简化的形式呈现本公开的一个或多个方面的一些概念,作为稍后呈现的更详细描述的序言。

在一个方面,本公开提供了用于减小时钟闭锁引起的电压下降的方法和装置。因此,一种用于减小时钟闭锁引起的电压下降的方法,该方法包括确定与输出时钟波形相关联的最大频率值;基于第一可编程掩模图案或第一布尔函数,调制输出时钟波形的时钟频率达第一持续时间;以及确定是否应当改变第一可编程掩模图案或第一布尔函数。在一个示例中,该方法还包括确定第二可编程掩模图案或第二布尔函数,其中第二可编程掩模图案不同于第一可编程掩模图案,并且第二布尔函数不同于第一布尔函数。在一个示例中,该方法还包括基于第二可编程掩模图案或第二布尔函数,调制输出时钟波形的时钟频率达第二持续时间。在一个示例中,该方法还包括确定输出时钟波形是否已经达到最大频率值。在一个示例中,最大频率是基于电压下降缓和电路的一个或多个电子组件的一个或多个操作规范。

在一个示例中,确定是否应当改变第一可编程掩模图案或第一布尔函数的步骤是基于时钟频率是否已经达到最大频率值。在一个示例中,确定是否应当改变第一可编程掩模图案或第一布尔函数的步骤是基于内部唤醒事件,其中内部事件是等待中断(wfi)事件、等待事件(wfe)事件或监听事件中的一种。在一个示例中,确定是否应当改变第一可编程掩模图案或第一布尔函数的步骤是基于外部事件,其中外部事件是无故障多路复用器改变事件、功率管理改变事件或软件中断事件中的一种。在一个示例中,确定是否应当改变第一可编程掩模图案或第一布尔函数的步骤是基于包括用于减小时钟闭锁引起的电压下降的电压下降缓和电路的数字电路系统内的活动处理器核的数量,其中确定是否应当改变第一可编程掩模图案或第一布尔函数时基于多个活动处理器核中的一个或多个活动处理器核的动态时钟和频率缩放(dcfs)点。

本公开的另一方面提供了一种电压下降缓和电路,其包括用于接收输入时钟波形和时钟使能信号波形并且用于输出门控时钟波形的时钟发生器;耦合到时钟发生器的可编程分频器,其中可编程分频器对门控时钟波形的时钟频率进行分频以生成分频后的门控时钟波形;串联耦合到第二多路复用器的第一多路复用器;以及用于基于输入时钟波形和时钟使能信号波形来控制第一多路复用器和第二多路复用器的控制逻辑。

在一个示例中,门控时钟波形是基于时钟使能信号波形的输入时钟的使能版本。在一个示例中,可编程分频器的输出耦合到第一多路复用器的第一输入。在一个示例中,第一多路复用器的第二输入接收分频后的门控时钟波形的反相形式。在一个示例中,第一多路复用器基于来自控制逻辑的第一控制信号,选择第一输入和第二输入中的一个输入作为第一多路复用器的输出。在一个示例中,第二多路复用器基于来自控制逻辑的第二控制信号,选择第二多路复用器的第一输入或第二多路复用器的第二输入中的一个输入作为第二多路复用器的输出。在一个示例中,第二多路复用器选择a)门控时钟波形、或者b)分频后的门控时钟波形或分频后的门控时钟波形的反相格式,以作为输出时钟波形进行输出。

本公开的另一方面提供了一种电压下降缓和电路,其包括用于接收输入时钟波形和时钟使能信号波形并且用于输出门控时钟使能信号波形的控制逻辑;耦合到控制逻辑的锁存器,锁存器用于保持门控时钟使能信号波形的状态;以及耦合到锁存器的与(and)门,与门用于输出输出时钟波形。在一个示例中,控制逻辑包括耦合到饱和计数器的反相器、耦合到饱和计数器的多路复用器和耦合到多路复用器的与门。在一个示例中,反相器接收时钟使能信号波形,并且当时钟使能为零的同时,反相器的输出复位饱和计数器。在一个示例中,饱和计数器由输入时钟波形计时。在一个示例中,可编程掩模图案被输入到多路复用器以使能或禁用一个或多个时钟脉冲,以用于将输出时钟波形的时钟频率修改为针对输出时钟波形的时间的斜坡函数。

本公开的另一方面提供了一种电压下降缓和电路,其包括用于接收输入时钟波形和时钟使能信号波形并且用于输出门控时钟使能信号波形的控制逻辑,其中控制逻辑包括计数器、可编程布尔函数发生器和与门;耦合到控制逻辑的锁存器,锁存器用于保持门控时钟使能信号波形的状态;以及耦合到锁存器的与门配置,与门配置用于输出输出时钟波形。在一个示例中,与门配置包括与反相器串联耦合的与非门。在一个示例中,计数器由输入时钟波形计时并且接收时钟使能信号波形。在一个示例中,可编程布尔函数发生器由计数器驱动以使能或禁用一个或多个时钟脉冲,以用于修改时钟频率以实现针对输出时钟波形的时间的时钟频率斜坡函数。在一个示例中,计数器包括多个计数器位。在一个示例中,可编程布尔函数发生器的输出是多个计数器位的组合函数。

通过阅读下面的详细描述,将能够更加充分地理解本发明的这些和其他方面。在结合附图阅读以下对本发明的具体示例性实施例的描述之后,本发明的其他方面、特征和实施例对于本领域技术人员将变得很清楚。尽管可以相对于下面的某些实施例和附图讨论本发明的特征,但是本发明的所有实施例可以包括本文中讨论的一个或多个有利特征。换言之,尽管可以将一个或多个实施例讨论为具有某些有利特征,但是根据本文中讨论的本发明的各个实施例,也可以使用一个或多个这样的特征。以类似的方式,尽管下面可以将示例性实施例作为设备、系统或方法实施例进行讨论,但是应当理解,这样的示例性实施例可以在各种设备、系统和方法中实现。

附图说明

图1示出了由于时钟门控而导致的电压下降相对于时间的示例关系的图。

图2示出了用于采用下降缓和仲裁逻辑电路的示例系统。

图3示出了处理器内的时钟闭锁架构的示例。

图4示出了示例波形图,其示出了示例输入时钟(clk_in)波形、示例时钟使能信号(clk_en)波形和示例输出时钟(clk_out)波形。

图5示出了示例波形图,其示出了示例输入时钟(clk_in)波形、示例时钟使能信号(clk_en)波形和示例输出时钟(clk_out)波形,其中示例输出时钟(clk_out)波形在减小的频率周期trfreq期间从零斜变(ramped)到可编程的减小的频率。

图6示出了用于减小时钟闭锁引起的电压下降的示例电压下降缓和电路。

图7示出了用于使用可编程掩模图案来减小时钟闭锁引起的电压下降的示例电压下降缓和电路。

图8示出了三迹线图的示例,其示出了针对具有电压下降缓和的数字电路系统的根据时间的三个示例性电路波形。

图9示出了三迹线图的示例,其示出了针对没有电压下降缓和的数字电路系统的根据时间的三个示例性电路波形。

图10示出了用于使用具有可编程布尔函数发生器的控制逻辑来减小时钟闭锁引起的电压下降的示例电压下降缓和电路。

图11示出了用于减小时钟闭锁引起的电压下降的示例流程图。

具体实施方式

下面结合附图阐述的详细描述旨在作为对各种配置的描述,而非旨在表示可以实践本文中描述的概念的唯一配置。详细描述包括特定细节,以提供对各种概念的透彻理解。然而,对于本领域技术人员将很清楚的是,可以在没有这些具体细节的情况下实践这些概念。在某些情况下,以框图形式示出了众所周知的结构和组件,以避免使这些概念模糊。

数字电子电路设计中的时钟信号用于同步地控制数字状态转换。对于较高的时钟速度,数字电路系统的功耗对应增加。本公开的各个方面涉及用于减小时钟闭锁引起的电压下降的系统和方法。高速数字电路系统中用于较高功耗的一种缓和技术是时钟门控。时钟门控是一种节能特征,其中可以对时钟信号进行门控(即,关闭和打开)以向数字电路系统的一部分断言(assert)和取消断言(de-assert)时钟信号。当时钟使能信号被取消断言时,时钟信号被禁用并且dc功耗降低。当时钟使能信号被断言时,时钟信号被使能并且dc功耗恢复到其全标称状态。实现时钟使能操作的器件可以称为时钟门控单元(cgc)或集成时钟门(icg)。

在数字电路系统中,cgc可以被设计为将时钟信号快速重新使能到全标称频率。然而,将时钟信号快速重新使能到全标称频率的结果是,由于与快速时钟信号频率相关联的快速电流瞬变,可能引起大的电压下降(即,电压瞬变)。大的电压下降会降低电路性能和功率效率。在一个示例中,由于数字电路系统中的电感,电压下降与电流相对于时间的导数成比例。例如,随着电流速度的增加,其导数增加并且电压下降也增加。例如,随着数字电路系统中的大量活动处理器的出现,电压下降幅度可能会恶化。图1示出了由于时钟门控而导致的电压下降相对于时间的示例图100。如图1所示,y轴表示以伏特为单位的电压vdd,并且x轴表示以纳秒为单位的时间。电压下降在曲线图100的左侧示出,箭头表示这种电压下降会降低性能。在一个示例中,电压下降是理想电压(例如,vdd=1v)与实际电压(如图1中的电压波形所示)之间的差。

在一个示例中,一种减小电压下降的缓和技术是采用用于选择性地控制对多个处理器的时钟信号的断言的下降缓和仲裁逻辑电路的添加。图2示出了用于采用下降缓和仲裁逻辑电路210的示例系统200。系统200可以包括时钟控制单元220和一个或多个处理器230(例如,处理器0(230a)、处理器1(230b)、……、处理器n(230n))。如图2所示,下降缓和仲裁逻辑电路210耦合到向每个处理器230输出时钟信号的时钟控制单元220。在每个处理器230与下降缓和仲裁逻辑电路210之间的通信交换的一个示例包括唤醒请求(wkup_req)信号和唤醒确认(wkup_ack)信号。

例如,下降缓和仲裁逻辑电路210可以仲裁每个处理器230的唤醒以允许最大数目的(多个)处理器并行退出时钟门控级。也就是说,在下降缓和仲裁逻辑电路210与每个处理器230之间存在握手协议。下降缓和仲裁逻辑电路210还可以控制时钟控制单元220,以减小使时钟信号的闭锁对每个处理器230的影响。

例如,下降缓和仲裁逻辑电路可以一次顺序地激活到仅一个或几个处理器的时钟信号,以避免跨所有处理器230的并行使能。下降缓和仲裁逻辑电路210还可以执行时钟控制以最小化时钟闭锁对性能的影响。在一个示例中,处理器性能可以与下降缓和仲裁逻辑电路210与每个处理器230之间的信令开销(例如,握手协议)有关。在一个示例中,每个处理器230可以在信令开销持续时间内暂缓。在一个示例中,当架构事件对于外部控制器可见时,诸如等待中断(wfi)信号和等待事件(wfe)信号,就会出现减小电压下降的效果。

图3示出了处理器300内的时钟闭锁架构的示例,该处理器采用时钟门控单元(cgc)310,以在时钟使能信号(clk_en)320被取消断言时将输出时钟(clk_out)320门控到门海330。当时钟使能信号(clk_en)320被取消断言时,时钟门控单元(cgc)310可以用于对输出时钟(clk_out)320进行门控。在一个示例中,时钟使能信号clk_en340源自门海330。在另一示例中,输出时钟clk_out320从输入时钟clk_in305导出到cgc310。

图4示出了示例波形图400,其示出了示例输入时钟(clk_in)波形405、示例时钟使能信号(clk_en)波形420和示例输出时钟(clk_out)波形440。示例波形图400示出了时钟闭锁操作由时钟使能信号(clk_en)波形420触发。如图4所示,输入时钟(clk_in)波形405是连续波形。在持续时间x期间,当时钟使能信号(clk_en)波形420变为关闭(即,被取消断言)时,输出时钟(clk_out)波形440是一条平线。当时钟使能信号(clk_en)波形420再次变为打开(即,被断言)时,输出时钟(clk_out)波形440恢复。当输出时钟(clk_out)波形440的频率立即从0%恢复到100%时,由于快速的电流瞬变而可能发生电压下降。作为示例,当时钟使能信号(clk_en)320被取消断言时,时钟门控单元(cgc)310(图3所示)门控输出时钟(clk_out)320。当时钟使能信号(clk_en)320再次被立即断言为100%频率时,这种突然变化可能导致电压下降。

在另一示例中,时钟使能信号(clk_en)320以最小的架构改变以降低的频率被再次断言。图5示出了示例波形图500,其示出了示例输入时钟(clk_in)波形505、示例时钟使能信号(clk_en)波形520和示例输出时钟(clk_out)波形540,其中示例输出时钟(clk_out)波形540在减小的频率周期trfreq期间从零斜变到可编程的减小的频率。

如图5所示,输入时钟(clk_in)波形505是连续波形。持续时间x期间,当时钟使能信号(clk_en)波形520变为关闭(即,被取消断言)时,输出时钟(clk_out)波形540是一条平线。当时钟使能信号(clk_en)波形520再次变为打开(即,被重新断言)时,输出时钟(clk_out)波形540恢复。如图5所示,在时钟使能信号(clk_en)波形520在xend处再次变为打开(即,被断言)与z在输出时钟(clk_out)波形540在减小的频率周期trfreq的开始处恢复时之间存在延迟δ。减小的频率周期trfreq的开始在图5中被标记为trstart。

如图5所示,在减小的频率周期trfreq期间,时钟频率从较低频率值顺序地增加到较高频率值,直到在减小的频率周期trfreq结束时达到全标称频率。减小的频率周期trfreq的结束在图5中被标记为trend。例如,当检测到时钟闭锁状态时,可以减小时钟频率,并且时钟频率可以在减小的频率周期trfreq内恢复到全频率。在一个示例中,不需要改变现有数字电路系统的微架构,并且可以使用标准时钟门控单元的相同端口。

图6示出了用于减小时钟闭锁引起的电压下降的示例电压下降缓和电路600。在一个示例中,电压下降缓和电路600是可以应用于各种电气应用的数字电路系统的一部分。在一个示例中,电压下降缓和电路600包括时钟发生器610、可编程分频器620、两个多路复用器630、640和控制逻辑650。尽管以相对于图6中的示例电压下降缓和电路600的其他组件的特定配置示出了两个多路复用器630、640,但是本领域技术人员将理解,在示例电压下降缓和电路600中可以使用其他数量和配置的多路复用器,而没有脱离本公开的精神和范围。尽管在图6的示例中示出了可编程分频器,但是在本公开的精神和范围内也可以使用固定的(即,非可编程的)分频器。

在一个方面,电压下降缓和电路600可以用于采用时钟闭锁技术,该技术在时钟使能信号(clk_en)波形520再次变为打开(即,被重新断言)的时间段内(诸如在减小的频率周期trfreq期间)将时钟频率从零(在被取消断言时)斜变(例如,调制)到全(100%)标称频率。如图6所示,输入时钟(clk_in)波形505通过时钟发生器610输入到电压下降缓和电路600。时钟使能信号(clk_en)波形520也通过时钟发生器610输入到电压下降缓和电路600。输入时钟(clk_in)波形505和时钟使能信号(clk_en)波形520二者也都输入到控制逻辑650。时钟发生器610的输出是门控时钟(clk_gated)波形615。门控时钟(clk_gated)波形615是基于时钟使能信号(clk_en)波形520的输入时钟(clk_in)505的使能版本。然后,门控时钟(clk_gated)波形615被输入到可编程分频器620和第二多路复用器640的第一输入641。在一个方面,可编程分频器620对门控时钟(clk_gated)波形615的时钟频率进行分频(即,改变)。因此,可编程分频器620的输出是分频后的门控时钟波形625。在一个示例中,分频后的门控时钟波形625是门控时钟(clk_gated)波形615的分频形式;也就是说,以较低的时钟频率。

可编程分频器620的输出耦合到第一多路复用器630的第一输入631。第一多路复用器630的第二输入632接收分频后的门控时钟波形625的反相形式。并且,第一多路复用器630的输出耦合到第二多路复用器640的第二输入642。每个多路复用器630、640基于来自控制逻辑650的控制信号选择其输入之一作为其输出。也就是说,控制逻辑650基于输入时钟(clk_in)波形505和时钟使能信号(clk_en)波形520,控制第一多路复用器630和第二多路复用器640两者。第二多路复用器640的输出是输出时钟(clk_out)波形540。第二多路复用器640选择a)门控时钟(clk_gated)波形615、或者b)分频后的门控时钟波形625或其反相格式。第二多路复用器640的选择是基于来自控制逻辑650的控制信号。

在一个示例中,当时钟使能信号(ck_en)波形520被断言时,分频后的门控时钟波形625可以为高或低。在一个示例中,控制逻辑650可以选择第一输入631或第二输入632以确保第一多路复用器630的输出为低,以使得将不会在闭锁时在输出时钟(clk_out)波形540上生成附加下降沿。当门控时钟(clk_gated)波形615为闭锁时,控制逻辑650可以选择第二多路复用器640的输入642,并且可以继续选择第二多路复用器640的输入642,直到延迟δ到期,并且切换到第二多路复用器640的输入641。在一个示例中,延迟δ是可编程延迟。

在一个示例中,输入时钟(clk_in)波形505处于50%的占空比。在一个示例中,输出时钟(clk_out)波形540在分频频率处处于50%占空比。在另一示例中,输出时钟(clk_out)波形540的占空比大于50%。并且,在又一示例中,输出时钟(clk_out)波形540的占空比小于50%。在一个示例中,可以采用电压下降缓和电路600来减小时钟频率,以实现时间的时钟频率斜坡函数(即,时钟频率斜坡相对于时间)。

图7示出了用于使用可编程掩模图案740来减小时钟闭锁引起的电压下降的示例电压下降缓和电路700。在一个示例中,电压下降缓和电路700是可以应用于各种电气应用的数字电路系统的一部分。在一个示例中,电压下降缓和电路700包括控制逻辑710、锁存器780和与门790。在一个示例中,输入时钟(clk_in)波形505和时钟使能信号(clk_en)波形520被输入到电压下降缓和电路700。电压下降缓和电路700的输出是输出时钟(clk_out)波形540。如图7所示,输入时钟(clk_in)波形505通过控制逻辑710、锁存器780和与门790输入到电压下降缓和电路700。时钟使能信号(clk_en)波形520通过控制逻辑710输入到电压下降缓和电路700。

图7还示出了控制逻辑710的扩展图。在一个示例中,控制逻辑710包括反相器720、饱和计数器730、多路复用器750和与门760。在一个示例中,饱和计数器730的输入包括图7所示的复位(rst)。为了避免和与门790相混淆,将控制逻辑内的与门称为控制逻辑与门760。时钟使能信号(clk_en)波形520通过反相器720和控制逻辑与门760输入到控制逻辑710。输入时钟(clk_in)波形505通过饱和计数器730输入到控制逻辑710。可编程掩模图案740输入到多路复用器750。可编程掩模图案740使能或禁用时钟脉冲,这将输出时钟(clk_out)波形540的时钟频率修改为时间的斜坡函数。时钟脉冲是输出时钟(clk_out)波形540的脉冲。在一个方面,动态地选择可编程掩模图案740。在另一方面,在使用之前选择可编程掩模图案740。

在电压下降缓和电路700的示例中,控制逻辑710被添加到时钟使能路径。时钟输入信号clk_in用作去往与门790的第一输入。此外,来自锁存器780的锁存的输出使能信号781用作去往与门790的第二输入。锁存器780保持其输入的状态。如图7所示,去往锁存器780的输入是门控时钟使能信号(clk_en)波形521。与门790的输出是输出时钟(clk_out)波形540。在一个示例中,锁存的输出使能信号781是从其输入生成的,该输入是门控时钟使能信号(clk_en)波形521。门控时钟使能信号(clk_en)波形521是通过控制逻辑710从时钟使能信号(clk_en)波形520变换得到的。

在一个示例中,饱和计数器730包括b位,并且由输入时钟(clk_in)波形505计时。饱和计数器730的输出是控制信号731。控制信号731被发送到多路复用器750,以选择可编程掩模图案740的n个输入中的哪个输入应当由多路复用器750输出到多路复用器750之一。

如在图7的示例中所示,n=32并且b=5位。在一个示例中,n=2b。在一个示例中,多路复用器750的n个输入是具有n个掩模位m0、m1、m2、……、mn-1的可编程掩模图案740。例如,第一掩模位表示为m0,最后的掩模位表示为mn-1。在一个示例中,多路复用器750的输出是来自可编程掩模图案740的n个掩模位m0、m1、m2、……、mn-1中的一个。也就是说,多路复用器750的输出可以再现根据时间的具有串联的n个掩模位m0、m1、m2、……、mn-1的可编程掩模图案740(即,多路复用器输出751)。在一个示例中,多路复用器750的输出以周期n重复,其中最后的掩模位mn-1之后是第一掩模位m0。

控制逻辑710产生由控制逻辑与门760生成的门控时钟使能信号(clk_en)波形521,其中以输入时钟(clk_in)波形505作为第一输入并且以多路复用器输出751作为第二输入。也就是说,多路复用器输出751是根据时间的具有串联的n个掩模位m0、m1、m2、……、mn-1的可编程掩模图案740。因此,当时钟使能信号(clk_en)波形520被断言为高时,控制逻辑710的输出符合根据时间的可编程掩模图案740m0、m1、m2、……、mn-1。在一个示例中,当时钟使能信号(clk_en)波形520被断言为高时,控制逻辑710的输出以周期n重复。当饱和计数器730顺序地改变状态时,多路复用器750通过根据可编程掩模图案740迫使门控时钟使能信号(clk_en)波形521为零,来掩蔽特定时钟脉冲。在另一方面,当时钟使能信号(clk_en)波形520为低(即,被取消断言)时,饱和计数器730被复位为零,并且门控时钟使能信号(clk_en)波形521也被设置为零。

在一个示例中,如果具有n个掩模位m0、m1、m2、……、mn-1(其中n=32并且b=5位)的可编程掩模图案740由下式给出:

11101010010010101011011011101111,

则输出时钟(clk_out)波形540逐渐斜变(例如,调制)电压下降缓和电路700为其组件的数字电路系统的电流需求。在一个示例中,唤醒惩罚由被门控为关闭的时钟脉冲的数目确定。在一个示例中,唤醒惩罚是12个周期。在一个示例中,唤醒惩罚由门控为关闭的时钟脉冲的数目、即掩模图案中的零的数目确定。作为示例,该示例中的最后的掩模位m31为1,以在饱和计数器730饱和时将门控时钟使能信号(clk_en)波形521保持为高。输出时钟(clk_out)波形540的占空比通常不是50%。虽然图7中的示例使用可编程掩模图案740,但是在另一示例中,在本公开的精神和范围内可以使用固定掩模图案。在一个示例中,例如,固定掩模图案可以是具有n个掩模位m0、m1、m2、……、mn-1的值和可以与所估计的电压下降值相关联的对应平均电流值的表。在使用固定掩模图案时,用户可以确定对于特定应用可容许的所估计的电压下降值。

图8示出了三迹线图800的示例,其示出了针对具有电压下降缓和的数字电路系统的根据时间的三个示例性电路波形。上部迹线810示出了数字电路系统的电流消耗。上部迹线810的y轴以安培为单位。中间迹线920示出了具有高达65mv的电压下降的电源电压。中间迹线820示出了与920相比具有减小的电压下降的电源电压。在一个示例中,减小的电压下降为65mv。中间迹线820的y轴以毫伏为单位。下部迹线830示出了随时间进行平均的电流波形810的导数。上部迹线810的y轴以安培为单位。所有三个迹线(上部迹线810、中间迹线820和下部迹线830)的x轴都是以纳秒为单位的时间。

图9示出了三迹线图900的示例,其示出了针对没有电压下降缓和的数字电路系统的根据时间三个示例性电路波形。上部迹线910示出了数字电路系统的电流消耗。上部迹线910的y轴以安培为单位。中间迹线920示出了具有高达119mv的电压下降的功率电压。中间迹线920的y轴以毫伏为单位。下部迹线930示出了随时间进行平均的电流波形910的导数。上部迹线910的y轴以安培为单位。所有三个迹线(上部迹线910、中间迹线920和下部迹线930)的x轴都是以纳秒为单位的时间。

图8和图9的比较表明,通过包括本文中公开的电压下降缓和电路,可以避免在内部唤醒事件(例如,等待中断(wfi)、等待事件(wfe)、监听等)或外部事件(例如,无故障多路复用器改变、功率管理改变、软件中断等)时的瞬时频率改变。通过包括电压下降缓和电路,允许外部配置信号控制时钟频率斜坡行为:

在一个示例中,可编程掩模图案740可以是基于内部唤醒事件(例如,等待中断(wfi)、等待事件(wfe)、监听等)的等待时间临界度。例如,可以响应于监听而实现较短的时钟频率斜坡,而对于wfi或wfe,可以实现较长的时钟频率斜坡。

在另一示例中,可编程掩模图案740可以是基于活动处理器核的数量。也就是说,与更多处理器核是活动的相比,如果单个处理器核是活动的,则时钟频率可以更快地斜变(例如,调制)。

在另一示例中,可编程掩模图案740可以基于处理器核的动态时钟和频率缩放(dcfs)点。例如,在超级加速(turbo)模式下,实现了较长的时钟频率斜坡。在较低频率模式下,实现了较短的时钟频率斜坡。也就是说,例如,在较高频率(例如,加速模式)下,可编程掩模图案740的持续时间可以为n=32,以允许较长的时钟频率斜坡。在较低频率下,可编程掩模图案740的持续时间可以为n=24,以允许从电源噪声的角度来看可以接受的较短的时钟频率斜坡。

在一个示例中,外部事件(例如,无故障多路复用器改变、功率管理改变、软件中断等)中的一种可以指示其他处理器核的斜坡状态。例如,如果其他处理器核已经处于全时钟频率,则执行较短的时钟频率斜坡。或者,如果多个处理器核同时打开,则执行较长的时钟频率斜坡。

图10示出了用于使用具有可编程布尔函数发生器1050的控制逻辑1010来减小时钟闭锁引起的电压下降的示例电压下降缓和电路1000。在一个示例中,电压下降缓和电路1000包括控制逻辑1010、锁存器1080、与反相器1095串联的与非门1093。在另一实现中,与反相器1095串联的与非门1093可以被替换为与门1090。在一个示例中,输入时钟(clk_in)波形505和时钟使能信号(clk_en)波形520被输入到电压下降缓和电路1000。电压下降缓和电路1000的输出是输出时钟(clk_out)波形540。如图10所示,输入时钟(clk_in)波形505通过与反相器1095(即,与门1090)串联的控制逻辑1010、锁存器1080和与非门1093而输入到电压下降缓和电路1000。时钟使能信号(clk_en)波形520通过控制逻辑1010输入到电压下降缓和电路1000。

图10还示出了控制逻辑1010的放大图。在一个示例中,控制逻辑1010包括计数器1030、可编程布尔函数发生器1050和与门1060。在一个示例中,去往计数器1030的输入包括图10所示的复位(rst)。为了避免和与门1090相混淆,将控制逻辑内的与门称为控制逻辑与门1060。时钟使能信号(clk_en)波形520通过计数器1030和控制逻辑与门1060输入到控制逻辑1010。输入时钟(clk_in)波形505通过计数器1030输入到控制逻辑1010。

如图10所示,可编程布尔函数发生器1050由计数器1030驱动以使能或禁用时钟脉冲,这修改(例如,减小)时钟频率以实现时间的时钟频率斜坡函数(即,时钟频率斜坡相对于时间)。在一个示例中,计数器1030是n位计数器。

如图10所示,输入时钟(clk_in)波形505用作去往与非门1093的第一输入。此外,来自锁存器1080的锁存的输出使能信号1081用作与非门1093的第二输入。锁存器1080保持其输入的状态。如图10所示,锁存器1080的输入是门控时钟使能信号(clk_en)波形521。和与非门1093串联的反相器1095的输出是输出时钟(clk_out)波形540。在一个示例中,锁存的输出使能信号1081是从其输入生成的,该输入是门控时钟使能信号(clk_en)波形521。

门控时钟使能信号(clk_en)波形521是通过控制逻辑1010从时钟使能信号(clk_en)波形520变换得到的。从时钟使能信号(clk_en)波形520到门控时钟使能信号(clk_en)波形521的变换使用计数器1030、可编程布尔函数发生器1050和与门1060。在一个示例中,计数器1030具有b位,并且由输入时钟(clk_in)波形505计时。例如,针对计数器1030的计数器状态的数目为n=2b。在一个示例中,b=6产生6位计数器,并且n=26=64个状态。在一个示例中,计数器1030的输出被输入到可编程布尔函数发生器1050,可编程布尔函数发生器1050生成门控时钟使能信号(clk_en)波形521。在一个示例中,门控时钟使能信号(clk_en)波形521随后被输入到锁存器1080以产生锁存的输出使能信号1081。

当使时钟使能信号(clk_en)波形520被取消断言(即,设置为低)时,计数器1030可以同步地复位为零。然后,当时钟使能信号(clk_en)波形520被断言(即,设置为高)时,计数器1030开始将其状态从零递增到2n-1。在一个示例中,计数器1030在最大状态2n-1时饱和。在一个方面,计数器1030与输入时钟(clk_in)波形505同步地递增。计数器1030的输出可以被发送到可编程布尔函数发生器1050。在一个示例中,通过根据可编程布尔函数发生器1050的输出1051迫使门控时钟使能信号(clk_en)波形521为零,可编程布尔函数发生器1050被选择为掩蔽时钟脉冲。

例如,可编程布尔函数发生器1050的输出1051可以是多个计数器位的组合函数。在一个示例中,可编程布尔函数发生器1050可以根据布尔函数来斜变(例如,调制)门控时钟使能信号(clk_en)波形521。在一个示例中,b=6。也就是说:

门控时钟使能信号(clk_en)波形521=

and[(时钟使能信号(clk_en)波形520),(!counter[0]+counter[5]]

在一个方面,输出时钟(clk_out)波形540以零频率开始,增加到50%,并且以输出时钟(clk_out)波形540在100%完全使能结束。一旦计数器1030达到某个状态,门控时钟使能信号(clk_en)波形521就可以稳定到固定的使能状态。例如,如果b=6并且使用示例可编程布尔函数发生器1050,则一旦计数器1030达到32的状态,门控时钟使能信号(clk_en)波形521就可以稳定到固定的使能状态。另外,在该示例中,输出时钟(clk_out)波形540占空比不是50%。虽然在图10的示例中,使用可编程布尔函数发生器,但是在本公开的精神和范围内,可以使用固定布尔函数发生器。

在一个方面,布尔函数可以基于内部唤醒事件(例如,等待中断(wfi)、等待事件(wfe)、监听等)的等待时间临界度。例如,可以响应于监听而实现较短的时钟频率斜坡,而对于wfi或wfe,可以实现较长的时钟频率斜坡。

在另一示例中,布尔函数可以是基于活动处理器核的数量。也就是说,与多个处理器核处于活动相比,如果单个处理器核处于活动,则时钟频率可以更快地斜变。

在另一示例中,布尔函数可以基于处理器核的动态时钟和频率缩放(dcfs)点。例如,在超级加速模式下,实现了较长的时钟频率斜坡。在较低频率模式下,实现了较短的时钟频率斜坡。也就是说,例如,在较高频率(例如,超级加速模式)下,布尔函数的持续时间可以为n=32,以允许较长的时钟频率斜坡。在较低频率下,布尔函数的持续时间可以为n=24,以允许从电源噪声角度来看可以接受的较短的时钟频率斜坡。

在一个示例中,外部事件(例如,无故障多路复用器改变、功率管理改变、软件中断等)中的一种可以指示其他处理器核的斜坡状态。例如,如果其他处理器核已经处于全时钟频率,则执行较短的时钟频率斜坡。或者,如果多个处理器核同时打开,则执行较长的时钟频率斜坡。

图11示出了用于减小时钟闭锁引起的电压下降的示例流程图1100。在框1110中,确定与输出时钟(clk_out)波形相关联的最大频率值。在一个示例中,最大频率可以是基于电压下降缓和电路的一个或多个电子组件的操作规范。

在框1120中,基于第一可编程掩模图案或第一布尔函数,调制输出时钟(clk_out)波形的时钟频率达第一持续时间。

在框1130中,确定是否应当改变第一可编程掩模图案或第一布尔函数。如果是,则前进到框1140。如果否,则停止。在一个示例中,如果输出时钟(clk_out)波形已经达到最大频率值,则不应当改变第一可编程掩模图案或第一布尔函数。在一个示例中,该确定是基于时钟频率是否已经达到最大频率值。在另一示例中,该确定是基于内部唤醒事件(例如,等待中断(wfi)、等待事件(wfe)、监听等)。在另一示例中,该确定是基于外部事件(例如,无故障多路复用器改变、功率管理改变、软件中断等)。在另一示例中,该确定是基于包括电压下降缓和电路的数字电路系统内的活动处理器核的数量。也就是说,与更多处理器核是活动的相比,如果单个处理器核是活动的,则时钟频率可以更快地斜变(例如,调制)。在另一示例中,该确定是基于一个或多个处理器核的动态时钟和频率缩放(dcfs)点。

在框1140中,确定第二可编程掩模图案或第二布尔函数,其中第二可编程掩模图案不同于第一可编程掩模图案,并且第二布尔函数不同于第一布尔函数。

在框1150中,基于第二可编程掩模图案或第二布尔函数,调制输出时钟(clk_out)波形的时钟频率达第二持续时间,并且确定输出时钟(clk_out)波形是否已经达到最大频率值。如果是,则停止。如果否,则确定另一可编程掩模图案或另一布尔函数,然后继续调制输出时钟(clk_out)波形的时钟频率,直到达到最大频率值。

在一个示例中,第二可编程掩模图案或第二布尔函数可以实现较长的时钟频率斜坡。在另一示例中,第二可编程掩模图案或第二布尔函数可以实现较短的时钟频率斜坡。实现较长的时钟频率斜坡还是较短的时钟频率斜坡可以取决于是否存在针对时钟频率斜坡行为的关键事件。如果没有关键事件,则第二可编程掩模图案或第二布尔函数将实现较长的时钟频率斜坡。如果存在关键事件,则第二可编程掩模图案或第二布尔函数将实现较短的时钟频率斜坡。例如,如果关键事件是必须迅速达到最大频率值,则第二可编程掩码模式或第二布尔函数将实现较短的时钟频率斜坡。另外,可以确定活动的处理器核的数量,以确定是否要实现较短的时钟频率斜坡。

在一个示例中,较长的时钟频率斜坡将以小于最大频率值的50%的频率值进行操作。在一个示例中,较短的时钟频率斜坡将以大于最大频率值的50%的频率值操作。在一个示例中,可编程掩模图案(例如,第一可编程掩模图案、第二可编程掩模图案等)和/或布尔函数(第一布尔函数、第二布尔函数等)可以通过分析模型来生成,该分析模型确定时钟频率斜坡及其相关联的电压下降。该分析模型可以包括用于数字电路系统的其他组件及其他组件的时钟频率行为的模型。

在一个方面,图11的步骤可以由本文中在图6、图7和/或图10中公开的任何电压下降缓和电路来执行。在一个方面,图11的一个或多个步骤可以由可以包括硬件、软件、固件等的一个或多个处理器执行。在一个方面,图11中的一个或多个步骤可以由可以包括硬件、软件、固件等的一个或多个处理器执行。例如,一个或多个处理器可以用于执行需要用于执行图11的流程图中的步骤的软件或固件。软件应当广义地解释为指指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行线程、程序、功能等,无论是被称为软件、固件、中间件、微码、硬件描述语言还是其他形式。软件可以驻留在计算机可读介质上。计算机可读介质可以是非暂态计算机可读介质。非暂态计算机可读介质例如包括磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,光盘(cd)或数字通用盘(dvd))、智能卡、闪存设备(例如,卡、棒或键驱动器)、随机存取存储器(ram)、只读存储器(rom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、寄存器、可移动磁盘、以及用于存储可以由计算机访问和读取的软件和/或指令的任何其他合适的介质。例如,计算机可读介质还可以包括载波、传输线、以及用于传输可以由计算机访问和读取的软件和/或指令的任何其他合适的介质。计算机可读介质可以驻留在处理系统中,在处理系统外部,或者分布在包括处理系统的多个实体之间。计算机可读介质可以在计算机程序产品中实现。作为示例,计算机程序产品可以包括封装材料中的计算机可读介质。计算机可读介质可以包括用于减小时钟闭锁引起的电压下降的软件或固件。本领域技术人员将认识到,如何根据特定应用和强加于整个系统的总体设计约束来最佳地实现贯穿本公开呈现的所描述的功能。

(多个)处理器中包括的任何电路系统被提供仅作为示例,并且用于执行所描述的功能的其他装置可以被包括在本公开的各个方面内,包括但不限于存储在计算机可读介质中的指令、或本文所述的并且利用例如本文中关于示例流程图所述的过程和/或算法的任何其他合适的装置或手段。

在本公开内,单词“示例性”用于表示“用作示例、实例或说明”。本文中描述为“示例性”的任何实现或方面都不必被解释为相对于本公开的其他方面是优选或有利的。同样,术语“方面”并不要求本公开的所有方面都包括所讨论的特征、优点或操作模式。本文中使用术语“耦合”来指代两个对象之间的直接或间接耦合。例如,如果对象a物理触摸对象b,并且对象b触摸对象c,则即使对象a和c彼此之间没有直接物理接触,它们仍然可以被视为彼此耦合。例如,即使第一管芯从不直接与第二管芯物理接触,第一管芯也可以耦合到封装中的第二管芯。术语“电路”和“电路系统”被广泛地使用,并且旨在包括在被连接和配置时能够实现本公开中描述的功能的电气设备和导体的硬件实现(而不受电子电路的类型的限制)、以及在由处理器执行时能够实现本公开中描述的功能的信息和指令的软件实现。

附图所示的一个或多个组件、步骤、特征和/或功能可以重新布置和/或组合成单个组件、步骤、特征或功能,或者实现为几个组件、步骤或功能。在不脱离本文中公开的新颖特征的情况下,还可以添加附加的元件、组件、步骤和/或功能。附图中示出的装置、设备和/或组件可以被配置为执行本文中描述的方法、特征或步骤中的一个或多个。本文中描述的新颖算法也可以有效地用软件实现和/或嵌入在硬件中。

应当理解,所公开的方法中步骤的特定顺序或层次是示例性过程的图示。应当理解,基于设计偏好,可以重新布置方法中步骤的特定顺序或层次。随附的方法权利要求以示例顺序呈现了各个步骤的要素,并且并不表示限于所呈现的特定顺序或层次,除非具体叙述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1