动态时钟配置下的SoC低功耗管理

上传人:鲁** 文档编号:568800499 上传时间:2024-07-26 格式:PDF 页数:5 大小:208.11KB
返回 下载 相关 举报
动态时钟配置下的SoC低功耗管理_第1页
第1页 / 共5页
动态时钟配置下的SoC低功耗管理_第2页
第2页 / 共5页
动态时钟配置下的SoC低功耗管理_第3页
第3页 / 共5页
动态时钟配置下的SoC低功耗管理_第4页
第4页 / 共5页
动态时钟配置下的SoC低功耗管理_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《动态时钟配置下的SoC低功耗管理》由会员分享,可在线阅读,更多相关《动态时钟配置下的SoC低功耗管理(5页珍藏版)》请在金锄头文库上搜索。

1、动态时钟配置下的动态时钟配置下的 SoCSoC 低功耗管理低功耗管理摘要:摘要:随着芯片集成度的提高,对一些功能复杂的系统芯片功耗的管理,已经引起大家越来越多的重视,如何控制好 SoC 的功耗将成为芯片能否成功的重要因素。本文提出一种通过动态管理时钟的策略,达到降低整个 SoC 芯片功耗的目的;同时,分析动态管理时钟方案中可能会出现的一些问题,并给出解决方案。关键词:关键词:系统芯片 毛刺 AMBA 总线 时滞引引 言言?随着集成电路技术的飞速发展和对消费类电子产品特别是便携式(移动)面向客户的电子产品的需求,推动了 SoC(System on Chip)的飞速发展,也给人们提出了许多新的课题

2、1。对于电池驱动的 SoC 芯片,已不能再只考虑它优化空间的两个方面速度(performance)和面积(cost),而必须要注意它已经表现出来的且变得越来越重要的第三个方面功耗1,这样才能延长电池的寿命和电子产品的运行时间。图图 1 1SoC 中 CMOS 电路功耗有:一是静态功耗,主要是由静电流、漏电流等因素造成的;二是动态功耗,主要是由电路中信号变换时造成的瞬态开路电流(crowbar current)和负载电流(load current)等因素造成的2,它是 SoC 芯片中功耗的主要来源3。因此,解决好 SoC 中的动态功耗是降低整个 SoC 芯片功耗的关键。本文后面所提到的功耗就是指

3、 SoC 芯片中的动态功耗。如何降低 SoC 中的功耗,从不同的层面分析会得出不同的解决方案。从芯片的系统级(architecture)角度考虑,有低功耗总线设计、低功耗存储系统设计、低功耗时钟网络设计、开发系统的休息模式、时钟门控等技术;从芯片的行为级(RTL)角度考虑,有信号门控、预前计算、操作数分离、状态机优化、并行和流水结构等技术;从芯片的门级(gate)角度考虑,有缓冲插入、提取因子、单元缩放、管脚交换、相位配置等技术4。从越高的抽象层次去考虑功耗问题,芯片功耗优化的幅度就越显著。本文所提出的基于动态配置时钟的 SoC 低功耗管理是从芯片的系统级角度考虑的。在最后的实验中,它非常明显

4、地降低了整个芯片的功耗。1 1 动态配置时钟的动态配置时钟的 SoCSoC 低功耗管理原理低功耗管理原理基于微处理器应用的 SoC 设计,其复杂程度变化很大:在一些应用中可能需要用到所有的硬件资源,但是在其它的一些应用中可能只需要用到其中一部分硬件资源;在一些应用中可能需要很高的工作频率,而在其它的一些应用中却可以大大降低工作频率。动态管理 SoC 系统时钟的思想就是:不仅动态地管理 SoC 内部模块的时钟源供给,还可以动态地配置 SoC 系统的时钟频率。动态地管理 SoC 内部模块的时钟源供给就是,根据不同的应用,管理SoC 内部的硬件资源。简而言之,就是进行内部模块的开和关的操作。关闭单个

5、模块,可以通过对每个模块设置一个使能位,然后对这个使能位编程做到关闭或打开那个模块。但这样做不是最佳的,原因有二:其一,每个模块的接口部分必须是始终打开的,否则,CPU 核无法随时对它的内部寄存器进行编程;其二,通过模块使能位只是关闭了它的功能操作,而并没有把它模块内的时钟树关闭掉,也就是说它里面的时钟树依然处于激活状态,而时钟树所造成的功耗占单个模块功耗的很大一部分。其实大多数模块都是同步系统,系统的所有操作都是在时钟信号的节拍下进行的5,关闭时钟源能同时达到关闭模块和降低功耗的目的。动态地配置 SoC 系统的时钟频率则是以不牺牲系统的性能为前提,动态地管理系统的工作频率来降低 SoC 的功

6、耗。时钟频率是影响动态功耗的重要因素:3。它的工作频率越高,功耗也就越大。但在很多时候,所有的模块并不是工作在同一时钟频率,或者同一个模块在不同的时段可以工作在不同的时钟频率。这些就是动态地配置 SoC 系统的时钟频率的前提。图 1 是整个 SoC 中的时钟网络(时钟树)。图中的功耗管理模块(power management module)完成这种功能。图图 3 32 2 芯片的低功耗工作管理模式芯片的低功耗工作管理模式为了更好地实现动态配置时钟的 SoC 低功耗管理策略,芯片在其工作中开发出了其低功耗管理机制中的四种工作模式:Slow、Normal、Idle 和Sleep。下面结合图 2 所

7、示的工作模式流程图来说明它的工作机制。表 1 为四种工作模式的状态。表表 1 1模式状态CPU 核状态模块状态Slow由晶振提供 CPU核和各模块的时钟源开不确定NormalIdleSleep由 PLL 提供关闭 CPU 核和关闭 CPU 核的CPU 核和各模所有模块的时时钟源块的时钟源钟源开不确定关不确定关关 (1)Slow 模式当系统复位以后或当系统关掉 PLL 不需要高速时钟运行时,系统进入到Slow 模式。在 Slow 模式下,系统中的 CPU 核和所有模块的时钟源都来自晶振。如果这时系统认为有必要关掉某些模块,那么,就可以通过配置功耗管理模块内部的寄存器,把相应模块的时钟源使能位关掉

8、。 (2)Normal 模式如果在某些应用中需要高速时钟,那么就应该切换到 Normal 模式。在Normal 模式下,系统中的 CPU 核和所有模块的时钟源都来自 PLL。当然,在这种模式下也可以根据系统的应用关掉某些模块。如果系统需要调整时钟的频率,可以通过动态配置 PLL 来实现。但是在动态配置 PLL 过程中,要注意这样一个问题:因为 PLL 有一个时钟锁定的时间,在这段时间内,它输出的时钟波形是不规则的,此时不能使用它作为芯片的时钟源。为了保证系统的正常运行,可以暂时把系统的时钟源切换到晶振状态,待 PLL 的时钟输出稳定以后再把系统的时钟源切换到 PLL 状态。(3)Idle 模式

9、如果 CPU 核在当前状态下已经处理完所有任务,在很长一段时间内都将处于空闲状态,那么系统应该进入到 Idle 模式。在 Idle 模式下,只会关闭CPU 核的时钟源,而所有的模块都保持原状。但在这种模式下,不可动态配置 PLL,以得到不同的时钟频率;也不可以动态地管理各模块的时钟源,因为这个时钟 Core 已经休眠了,它没办法对功耗管理模块内部的寄存器进行配置。无论前一个状态是 Slow 模式还是 Normal 模式,系统都可以进入到Idle 模式下;而当系统退出 Idle 模式时,它应该退回到前一个工作模式。当系统重新需要 CPU 核进行事务处理时,可以通过一个唤醒信号让系统退回到 Slo

10、w 模式或 Normal 模式。 (4)Sleep 模式如果整个系统都已经处理完所有的事务,并且在很长的一段时间内都将处于空闲状态,那么系统应该进入到 Sleep 模式。在 Sleep 模式下,关闭CPU 核和所有模块的时钟源。虽然可以从 Slow 模式或 Normal 模式切换到Sleep 模式,但是当它退出 Sleep 模式时,系统只能回到 Slow 模式。因为为了进一步降低整个芯片的功耗,在 Sleep 模式时会同时关闭 PLL,所以在它退出时只能回到 Slow 模式,然后根据当前的应用决定有没有再切换到Normal 模式的必要。当系统需要再次进行事务处理时,可以通过一个唤醒信号唤醒整个

11、 SoC 芯片系统。3 3 功耗管理模块的实现功耗管理模块的实现功耗管理模块主要由一个状态机、一些多路选择器和一些门控时钟电路组成。状态机的责职就是完成各种模式之间的切换和送出 PLL 的控制信号。多路选择器主要完成各种时钟源之间的选择,而门控时钟电路则完成 CPU 核和各模块时钟源的打开和关闭功能。图 3 是功耗管理模块中时钟源路线。从图 3 中可以清楚地看出,在功耗管理模块中例示了两个 PLL:一个是主 PLL(MPLL),它提供整个 SoC 中除 USB 模块以外的所有模块的时钟源;另一个是次 PLL(UPLL),它只对 USB 提供时钟源。MUX 完成晶振时钟和PLL 时钟的选择,被选

12、中的时钟(FCLK)同时送到 CPU 核、HCLK 和 PCLK,然后根据各个模块的需要门控地送出时钟源。这是基于 AMBA 总线结构的SoC。根据 AMBA 总线的协议,CPU 核、AHB 上的模块和 APB 上的模块的时钟频率可以配置成倍比关系6。经过 HCLK 分频的时钟源只提供给 AHB 上的模块,而经过 PCLK 分频的时钟源只提供给 APB 上的模块。AHB_con 、APB_con、Core_con 和 USB_con 一起管理 SoC 内部模块的时钟源供给。4 4 动态时钟管理中的问题及消除方法动态时钟管理中的问题及消除方法动态地配置整个系统的时钟频率,虽然可以很方便地控制好整

13、个 SoC 芯片的功耗,但同时也带来了一些负面影响。功耗管理单元中的多路选择器和门控时钟电路是最有可能产生毛刺的,而毛刺对同步数字系统是致命的。它会导致同步的失败、数据的丢失、寄存器进入亚稳态,更为严重的是,使整个同步系统的功能失败。毛刺的产生是因为那些输入信号的时序匹配出现了问题,没有按照既定的顺序出现,或者说那些信号装转换的时机不合适。因此在 RTL 设计时要保证做到时序的匹配,以降低毛刺产生的可能性。在功耗管理模块中有三种情况需要用到多路选择器:a. 由 Slow 模式切换到 Normal 模式;b. 在 Normal 模式下重新配置 PLL;c. 由 Normal 模式切换到 Slow

14、 模式。图 4 是功耗管理模块中的一个二选一 MUX。它的控制信号是OscillatorOrMPLL,两个选择源是 clk_MPLL 和 clk_Osci,输出是out_ClockSource。当 OscillatorOrMPLL 为“1”时,MUX 选中 clk_Osci;当 OscillatorOrMPLL 为“0”时,MUX 选中 clk_MPLL。在 MUX 选择其中任何一个时钟信号之前,clk_MPLL 或 clk_Osci 必须已经稳定下来了。强调一下,这里的稳定不是指已经输送出完整的时钟信号,而是输送出高电平或低电平。这样当选择开关达到它们那一方时,接受到的是没有毛刺的且对整个S

15、oC 不会产生操作的时钟信号。虽然在这时因为这种操作把 SoC 的频率降了下来,但这是暂时的(大约 23 个晶振时钟周期),因此对整个 SoC 性能的影响是微乎其微的。接下来被选中的信号(clk_MPLL 或 clk_Osci)才开始输送出没有毛刺的时钟信号,从而最终送出的时钟信号是去除了毛刺的。图图 5 5图 5 是系统从 Slow 模式切换到 Normal 模式时的时序图。通过配置功耗管理模块的内部寄存器打开 PLL,即 in_PLLStartOrStop 信号,由它触发Slow2Normal_r 信号,表明当前将要从 Slow 模式过渡到 Normal 模式。然后,由这个信号触发 Loc

16、k Time 计数器开始计数(计数值由 PLL 的 IP 提供商所给的公式中确定),接着先把晶振时钟的使能信号关掉,再把多路选择器打到 MPLL 那一方。最后,把 PLL 时钟的使能信号打开,这时得到的就是经过倍频的 PLL 时钟。从时序图可以清晰看出,在时钟源切换的过程中,最终送出的时钟(out_ClockSource)频率会很明显地降低下来(大约是晶振时钟频率的1/3 或 1/2);但是如果选择的晶振时钟频率在 10MHz 以上,则不会对整个SoC 芯片的性能产生影响。至于门控时钟电路,已经有许多人在这方面作了很广泛的研究,本文不再对此作过多的解释7。5 5 结结 论论本文提出了一种 So

17、C 芯片的低功耗管理策略。其基本思想是,首先从全局考虑,在满足性能的前提下,根据各种应用环境动态地配置 SoC 芯片的时钟频率。然后,从局部单独考虑单个模块,通过判断它当前的工作状态决定是否打开其时钟源。该低功耗管理方案已经应用于我们设计的一款 SoC 芯片Garfield。经过表 2 所列 Power Compiler 的功耗分析,可以清晰地看出:在 Slow 模式下的功耗仅为 Normal 模式下功耗的 17%左右,而在 Sleep 模式下的功耗更低。表表 2 2 功耗分析结果功耗分析结果功率/mW工作频率/MHzSlow68.91010Normal405.45360Idle60.07810Sleep0.001420

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号