您的位置 首页 ADAS

动态时钟装备下的SoC低功耗办理详解

动态时钟配置下的SoC低功耗管理详解-SoC中CMOS电路功耗有:一是静态功耗,主要是由静电流、漏电流等因素造成的;二是动态功耗,主要是由电路中信号变换时造成的瞬态开路电流(crowbar current)和负载电流(load current)等因素造成的,它是SoC芯片中功耗的主要来源。

跟着集成电路技能的飞速发展和对消费类电子产品——特别是便携式(移动)面向客户的电子产品的需求,推动了SoC(System on Chip)的飞速发展,也给人们提出了许多新的课题[1]。关于电池驱动的SoC芯片,已不能再只考虑它优化空间的两个方面——速度(performance)和面积(cost),而必需求留意它现已表现出来的且变得越来越重要的第三个方面——功耗,这样才干延伸电池的寿数和电子产品的运转时刻。

SoC中CMOS电路功耗有:一是静态功耗,首要是由静电流、漏电流等要素形成的;二是动态功耗,首要是由电路中信号改换时形成的瞬态开路电流(crowbar current)和负载电流(load current)等要素形成的[2],它是SoC芯片中功耗的首要来历[3]。因而,处理好SoC中的动态功耗是下降整个SoC芯片功耗的要害。本文后边所说到的功耗便是指SoC芯片中的动态功耗。

怎么下降SoC中的功耗,从不同的层面剖析会得出不同的处理计划。从芯片的体系级(architecture)视点考虑,有低功耗总线规划、低功耗存储体系规划、低功耗时钟网络规划、开发体系的歇息形式、时钟门控等技能;从芯片的行为级(RTL)视点考虑,有信号门控、预前核算、操作数别离、状况机优化、并行和流水结构等技能;从芯片的门级(gate)视点考虑,有缓冲刺进、提取因子、单元缩放、管脚交流、相位装备等技能[4]。从越高的笼统层次去考虑功耗问题,芯片功耗优化的起伏就越明显。

本文所提出的依据动态装备时钟的SoC低功耗办理是从芯片的体系级视点考虑的。在终究的试验中,它十分明显地下降了整个芯片的功耗。

1 动态装备时钟的SoC低功耗办理原理

依据微处理器使用的SoC规划,其杂乱程度改变很大:在一些使用中或许需求用到一切的硬件资源,可是在其它的一些使用中或许只需求用到其间一部分硬件资源;在一些使用中或许需求很高的作业频率,而在其它的一些使用中却能够大大下降作业频率。动态办理SoC体系时钟的思维便是:不只动态地办理SoC内部模块的时钟源供应,还能够动态地装备SoC体系的时钟频率。

动态地办理SoC内部模块的时钟源供应便是,依据不同的使用,办理SoC内部的硬件资源。简而言之,便是进行内部模块的开和关的操作。封闭单个模块,能够通过对每个模块设置一个使能位,然后对这个使能位编程做到封闭或翻开那个模块。但这样做不是最佳的,原因有二:其一,每个模块的接口部分有必要是一直翻开的,不然,CPU核无法随时对它的内部寄存器进行编程;其二,通过模块使能位仅仅封闭了它的功用操作,而并没有把它模块内的时钟树封闭掉,也便是说它里边的时钟树仍然处于激活状况,而时钟树所形成的功耗占单个模块功耗的很大一部分。其实大多数模块都是同步体系,体系的一切操作都是在时钟信号的节拍下进行的[5],封闭时钟源能一同到达封闭模块和下降功耗的意图。

动态地装备SoC体系的时钟频率则是以不献身体系的功能为条件,动态地办理体系的作业频率来下降SoC的功耗。时钟频率是影响动态功耗的重要要素:[3]。它的作业频率越高,功耗也就越大。但在许多时分,一切的模块并不是作业在同一时钟频率,或许同一个模块在不同的时段能够作业在不同的时钟频率。这些便是动态地装备SoC体系的时钟频率的条件。

图1是整个SoC中的时钟网络(时钟树)。图中的功耗办理模块(power management module)完结这种功用。

图1 SoC时钟网络

2 芯片的低功耗作业办理形式

为了更好地完结动态装备时钟的SoC低功耗办理战略,芯片在其作业中开发出了其低功耗办理机制中的四种作业形式:Slow、Normal、Idle和Sleep。下面结合图2所示的作业形式流程图来阐明它的作业机制。

\

图2 作业形式流程

表1为四种作业形式的状况。

表1

(1) Slow形式

当体系复位今后或当体系关掉PLL不需求高速时钟运转时,体系进入到Slow形式。在Slow形式下,体系中的CPU核和一切模块的时钟源都来自晶振。假如这时体系认为有必要关掉某些模块,那么,就能够通过装备功耗办理模块内部的寄存器,把相应模块的时钟源使能位关掉。

(2) Normal形式

假如在某些使用中需求高速时钟,那么就应该切换到Normal形式。在Normal形式下,体系中的CPU核和一切模块的时钟源都来自PLL。当然,在这种形式下也能够依据体系的使用关掉某些模块。假如体系需求调整时钟的频率,能够通过动态装备PLL来完结。可是在动态装备PLL过程中,要留意这样一个问题:由于PLL有一个时钟确认的时刻,在这段时刻内,它输出的时钟波形是不规则的,此刻不能使用它作为芯片的时钟源。为了确保体系的正常运转,能够暂时把体系的时钟源切换到晶振状况,待PLL的时钟输出安稳今后再把体系的时钟源切换到PLL状况。

(3) Idle形式

假如CPU核在当时状况下现已处理完一切使命,在很长一段时刻内都将处于闲暇状况,那么体系应该进入到Idle形式。在Idle形式下,只会封闭CPU核的时钟源,而一切的模块都保持原状。但在这种形式下,不行动态装备PLL,以得到不同的时钟频率;也不能够动态地办理各模块的时钟源,由于这个时钟Core现已休眠了,它没办法对功耗办理模块内部的寄存器进行装备。不管前一个状况是Slow形式仍是Normal形式,体系都能够进入到Idle形式下;而当体系退出Idle形式时,它应该退回到前一个作业形式。当体系从头需求CPU核进行业务处理时,能够通过一个唤醒信号让体系退回到Slow形式或Normal形式。

(4) Sleep形式

假如整个体系都现已处理完一切的业务,并且在很长的一段时刻内都将处于闲暇状况,那么体系应该进入到Sleep形式。在Sleep形式下,封闭CPU核和一切模块的时钟源。尽管能够从Slow形式或Normal形式切换到Sleep形式,可是当它退出Sleep形式时,体系只能回到Slow形式。由于为了进一步下降整个芯片的功耗,在Sleep形式时会一同封闭PLL,所以在它退出时只能回到Slow形式,然后依据当时的使用决议有没有再切换到Normal形式的必要。当体系需求再次进行业务处理时,能够通过一个唤醒信号唤醒整个SoC芯片体系。

3 功耗办理模块的完结

功耗办理模块首要由一个状况机、一些多路挑选器和一些门控时钟电路组成。状况机的责职便是完结各种形式之间的切换和送出PLL的操控信号。多路挑选器首要完结各种时钟源之间的挑选,而门控时钟电路则完结CPU核和各模块时钟源的翻开和封闭功用。图3是功耗办理模块中时钟源道路。

从图3中能够清楚地看出,在功耗办理模块中例示了两个PLL:一个是主PLL(MPLL),它供应整个SoC中除USB模块以外的一切模块的时钟源;另一个是次PLL(UPLL),它只对USB供应时钟源。MUX完结晶振时钟和PLL时钟的挑选,被选中的时钟(FCLK)一同送到CPU核、HCLK和PCLK,然后依据各个模块的需求门控地送出时钟源。这是依据AMBA总线结构的SoC。依据AMBA总线的协议,CPU核、AHB上的模块和APB上的模块的时钟频率能够装备成倍比联系[6]。通过HCLK分频的时钟源只供应应AHB上的模块,而通过PCLK分频的时钟源只供应应APB上的模块。AHB_con 、APB_con、Core_con和USB_con一同办理SoC内部模块的时钟源供应。

\

图3 时钟源道路

4 动态时钟办理中的问题及消除办法

动态地装备整个体系的时钟频率,尽管能够很方便地操控好整个SoC芯片的功耗,但一同也带来了一些负面影响。功耗办理单元中的多路挑选器和门控时钟电路是最有或许发生毛刺的,而毛刺对同步数字体系是丧命的。它会导致同步的失利、数据的丢掉、寄存器进入亚稳态,更为严重的是,使整个同步体系的功用失利。毛刺的发生是由于那些输入信号的时序匹配呈现了问题,没有依照既定的次序呈现,或许说那些信号装转化的机遇不合适。因而在RTL规划时要确保做到时序的匹配,以下降毛刺发生的或许性。

在功耗办理模块中有三种状况需求用到多路挑选器:

a. 由Slow形式切换到Normal形式;

b. 在Normal形式下从头装备PLL;

c. 由Normal形式切换到Slow形式。

图4是功耗办理模块中的一个二选一MUX。它的操控信号是OscillatorOrMPLL,两个挑选源是clk_MPLL和clk_Osci,输出是out_ClockSource。当OscillatorOrMPLL为“1”时,MUX选中clk_Osci;当OscillatorOrMPLL为“0”时,MUX选中clk_MPLL。在MUX挑选其间任何一个时钟信号之前,clk_MPLL或clk_Osci有必要现已安稳下来了。着重一下,这儿的安稳不是指现已运送出完好的时钟信号,而是运送出高电平或低电平。这样当挑选开关到达它们那一方时,接受到的是没有毛刺的且对整个SoC不会发生操作的时钟信号。尽管在这时由于这种操作把SoC的频率降了下来,但这是暂时的(大约2~3个晶振时钟周期),因而对整个SoC功能的影响是微乎其微的。接下来被选中的信号(clk_MPLL或clk_Osci)才开端运送出没有毛刺的时钟信号,然后终究送出的时钟信号是去除了毛刺的。

\

图4 MUX结构

图5是体系从Slow形式切换到Normal形式时的时序图。通过装备功耗办理模块的内部寄存器翻开PLL,即in_PLLStartOrStop信号,由它触发Slow2Normal_r信号,标明当时将要从Slow形式过渡到Normal形式。然后,由这个信号触发Lock TIme 计数器开端计数(计数值由PLL的IP供应商所给的公式中确认),接着先把晶振时钟的使能信号关掉,再把多路挑选器打到MPLL那一方。终究,把PLL时钟的使能信号翻开,这时得到的便是通过倍频的PLL时钟。

\

图5 Slow到Normal的切换时序

从时序图能够明晰看出,在时钟源切换的过程中,终究送出的时钟(out_ClockSource)频率会很明显地下降下来(大约是晶振时钟频率的1/3或1/2);可是假如挑选的晶振时钟频率在10MHz以上,则不会对整个SoC芯片的功能发生影响。

至于门控时钟电路,现已有许多人在这方面作了很广泛的研讨,本文不再对此作过多的解说[7]。

5 定论

本文提出了一种SoC芯片的低功耗办理战略。其基本思维是,首先从大局考虑,在满意功能的条件下,依据各种使用环境动态地装备SoC芯片的时钟频率。然后,从部分独自考虑单个模块,通过判别它当时的作业状况决议是否翻开其时钟源。

该低功耗办理计划现已使用于咱们规划的一款SoC芯片——Garfield。通过表2所列Power Compiler的功耗剖析,能够明晰地看出:在Slow形式下的功耗仅为Normal形式下功耗的17%左右,而在Sleep形式下的功耗更低。

表2 功耗剖析成果

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/103150.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部