低功耗体系规划需求留意许多非传统性要素,从硅片工艺技能,直到在微操控器嵌入渠道上运转的软件。在体系级做仔细检查可提醒出决议微操控器能效的三个首要参数:有源形式功耗;待机功耗;以及作业周期,后者决议了两种状况上所花时刻的比率,而这个比率则取决于软件的行为。
低功耗待机状况可以使一只微操控器看似十分高能效,但只需考虑了影响到有源功耗的全部要素后,才干证明其终究功用。
低功耗待机状况可以使一只微操控器看似十分高能效,但只需考虑了影响到有源功耗的全部要素后,才干证明其终究功用。鉴于这个和其它原因,工艺技能、IC架构以及软件结构之间的权衡便是一些决议计划问题,有一些奇妙和有时无法预期的成果。一个MCU中各功用块彼此结合的办法,对全体能效有明显的影响。即便硬件完结上看似细小的改动,也或许致使一个体系生命周期内的总能耗发生巨大的动摇。
低功耗运用
举例来说,读表与报警体系,一般一节电池要供10年电。某只传感器读取功耗的少量添加(在产品的生命周期中,这种读数动作要发生上亿次),就或许使产品的实践现场寿数削减数年时刻。一只简略的烟雾警报器,每秒要勘探一次空气中的烟尘粒子,在其生命周期内完结3.15亿次读取。
一只简略烟雾报警器的活动比率(或作业周期)还相对算低的。每只传感器读数时或许花费时刻不到数百毫秒就能完结,大部分时刻花在当MCU唤醒ADC以及其它灵敏模仿元件时的校准和安靖上,以使它们到达一个安稳的作业点。在本例中,作业周期是规划的要害,这个规划在约99.88%的时刻中是处于不活动状况。
传统的烟雾警报器还算比较简略。考虑一个更杂乱的RF规划,它有一个传感器网格,将读数成果转发给一个主控运用。传感器需求从一个主结点倾听活动状况,这样一方面可以布告说自己依然在网格网络中,或许将最新捕捉的信息发送给路由器。不过,添加活动或许并不影响整个作业周期;相反,选用更高功用的器材,可以在每次激活期间完结更多功用。由于更先进架构与半导体技能,使得处理速度的添加成为或许,较快器材可以供给更高的能效,而较慢器材则要运转更长周期。要点在于了解工艺技能、MCU架构,以及软件完结之间的交互作用。
硅挑选
CMOS能耗数据。简直全部MCU的完结都运用了CMOS技能(图1)。任何激活态下逻辑电路的功耗都可以用公式CV2f表明,其间C是器材内开关电路途径的总电容,V是电源电压,而f是作业频率。电压和电容都是所选用工艺技能的要素。曩昔三十年以来,CMOS逻辑的芯片作业电压现已从12V降到缺乏 2V,原因是晶体管规范的缩小。鉴于电压在有源功耗的公式中是一个二次项,因而电压的下降有明显的作用。
尽管电容项是线性的,但摩尔定律的缩小也十分有利于下降其全体水平。关于一个给定的逻辑功用,更先进的工艺可供给较低%&&&&&%,然后取得较前代更低的功耗。别的,先进的规划技能可以完结时钟门控,这样只需完结实践使命的电路才作业,然后下降了整体开关频率。
与其它技能比较,CMOS明显下降了糟蹋的能量;可是,走漏电流依然存在。与有源功耗相反,走漏功耗会随摩尔定律规范的缩小而添加,在任何低功耗运用中都要考虑它的要素,由于关于一个低作业周期体系,大部分时刻是处于非激活状况。但对有源功耗,电路规划就对实践走漏有重要影响。与时钟门控相似,电源门控可以大大改进走漏的效应,使更先进工艺结点成为低作业周期体系的较好挑选,尽管理论上较老工艺技能可以供给更低的走漏数值。
适宜的工艺技能。对每组特性调集都存在着一种恰当的工艺技能。答案并非简略地取决于一种有最低理论走漏值的工艺技能,由于器材在睡觉形式下花费的时刻许多。在睡觉形式下,可以封闭MCU中大部分的电源,从公式中拿掉走漏成份。当电路活动时,走漏是一个较大的问题,但先进晶体管的优势在于能以高得多的功率切换,然后可以简单地抵消这个问题。
举例来说,90 nm工艺的走漏电流要比专用的低功耗180 nm工艺高出大约五倍。有源形式功耗要低四倍,但其基数是一个大得多的数值。
例如一个180 nm MCU,其有源耗电为40 mA,深度睡觉形式耗电为60 nA,与这些功率水平比较,90 nm完结的功率水平可以将有源耗电降至10 mA,但睡觉形式电流较高,为300 nA.对90 nm完结来说,MCU必须在0.0008%的时刻里为活动状况,才干取得更高的整体能效。换句话说,假如体系每天只活动作业1秒,则90 nm版的能效大约是其180 nm对手的1.5倍。结论是,在挑选工艺规范时,要害在于了解运用的作业周期(图2)。
一旦挑选好了适宜的作业技能,IC规划者就可以挑选进一步优化动力功用。当时钟门控开端面世时,它只在一个相对粗糙的水平上运用。时钟门控添加了一个体系的杂乱性,由于电路规划者需求知道在任何确认的时刻时,哪个逻辑途径需求时钟信号。
时钟分配。大大都MCU完结都选用一种层次式结构,将时钟信号和相应的电压水平分配到IC的各个部分。各个功用单元(如指令处理块与外设)被划分为组,每组都馈给一个独立的时钟树和电源网络。一个分频器或复用器从一个公共时钟源取得每一组的时钟信号。相同,假如这些组需求不同的电压(这种计划日益遍及),则一组功率晶体管和稳压器会为每组外设供给电压。
为尽量削减规划的杂乱性,MCU选用了一种相对简略的时钟门控办法,只需一组中的功率单项均未激活,则会关断整个时钟树。不过,这种办法会向那些在活动组中不作业的逻辑送入时钟。例如,假如当时指令是一个分支指令,CPU中心中的加法单元也会收到一个时钟。如前所述,时钟信号在加法器中触发的转化会使功耗添加CV2f倍。
规划东西与技能的前进已可以使时钟门控的粒度添加到某个点,假如外设或功率单元在该周期内不作业,就不会收届时运用的作业周期钟信号。
电压缩放供给了更进一步的节能潜力,它能在必要时,为特定一组功用单元供给一个较低的电压。为一组功率单元或外设供给恰当电压的要害在于片上稳压器或dc/dc转化器的完结,以及监控电路的运用,保证IC作业在所需求的电压下。
电源的考虑。片上稳压器为体系规划者供给了更高的灵敏性,然后能从一只电池剥削更多电能。例如,片上开关降压转化器(如Silicon Labs公司的SiM3L1xx MCU产品)可以从一只3.6V工业电池取得输入,以高于80%的功率将其转化为1.2V.许多MCU没有这种特性,而是选用线性元件降压到适宜电平,会有许多的耗费。在高档的完结中,当电池放电到某个水平,转化器无法做转化作业时,降压稳压器可以封闭。因而,电源可以在设备的整个生命周期上做到优化能效,全部均在软件操控下。
软件的决议计划
功用的缩放。高能效嵌入运用的完结有赖于软件的规划,软件要以最恰当的办法运用硬件资源。什么样才是适宜,这不只取决于运用,并且要看硬件完结。相同,硬件越灵敏(包括CPU、时钟、电压和存储器运用),开发者可以取得的节能潜力也越大。能感知硬件的软件东西为嵌入体系工程师供给了更高的认知度,使他们可以更多地了解到哪种更高节能是可完结的。
一种挑选是选用动态电压缩放,如图3和图4所示。使该技能得以完结的是片上dc/dc转化器与功用监控电路,当运用不需求以最高速度履行指令时,它们供给了下降电压的才能。在这些状况下,体系就作业在较低的功耗下。终究的好处是一个输入电压的函数,可以在产品的生命周期内改动。图中显现了无电压缩放(VDD固定)、SVS(静态电压缩放),以及AVS(动态电压缩放)之间的相对不同。
AVS有一个有意思的当地,这便是AVS战略可以依据体系输入电压而改动。在本例中,当输入为3.6V时,用一个高效的内部dc/dc转化器为内部逻辑以及闪存供电,功率更高。但随着在产品生命周期内的电池放电,输入电压下跌,用输入电压为闪存子体系直接供电就成了更高效的办法,由于内部逻辑可以作业在较闪存更低的电压下。例如,Silicon Labs公司的SiM3L1xx系列MCU就有一个灵敏的电源架构,有六个独立和可变的电源域,可以完结这种动态的优化。
添加硬件块(如DMA)可以进一步改动对能耗的折衷。
一般来说,CMOS逻辑电路作业得较慢,由于它们电压低。假如运用可以忍受较低的功用,则较低电压可以因能耗中的二次项而取得大的节能作用,例如常有这种状况,要处理的通信协议,其提交数据的速度不高于某种规范频率。走漏为电压缩放供给了下限。假如每次运转花费时刻太长,则走漏就开端占有能耗方程的首要位置,然后添加了总能耗。因而,履行一个功用越快越好,然后就使处理器回到睡觉形式,尽量削减走漏成份。
考虑一个需求完结相当大都字信号处理的无线传感器运用,例如玻璃破碎勘探器。在本例中,运用会通过一个快速富利叶改换来剖析由音频传感器拾取的振荡,其特性频率来自于玻璃的碎裂。FFT比较杂乱,因而,如要下降电压而以较低频率履行这个改换,就会大大添加走漏,
即便是选用较老的工艺技能。本例的最佳计划是以挨近最高频率运转这个改换,然后回来睡觉形式,直到要向主结点陈述任何成果时。
不过,无线协议代码会发生不同的要求。射频协议要求事情有固定的时序。在这些状况下,协议或许要完全由硬件处理。这就使下降处理器中心电压有了更大的含义。因而,需求做分组拼装与传输的代码要运转在适宜于无线协议的速度。
添加硬件块(如智能DMA)可以进一步改动能耗的折衷状况。许多DMA操控器都需求处理器的频频干涉,如原生ARM Cortex-M3处理器所供给的DMA操控器。但更多智能DMA操控器能支撑一种排队与链接的组合,处理器就可以核算报头、加密数据、分组拼装,然后以恰当的距离,将数据的传送作业转交给缓冲存储区,供射频前端运用。在射频链路激活的大大都时刻内,处理器可以睡觉,节约许多动力。
存储器运用。关于现代32 bit MCU,软件工程师在存储器块的运用办法上有高度自在。一般MCU会供给一组存储器,包括长时间保存代码和数据的非易失存储器,以及寄存暂时数据的 SRAM.大都状况下,拜访闪存的功耗要高于SRAM.关于正常运用状况,闪存读取次数是SRAM读取数的三倍。闪存写入耗费的功率更多(需求将整块擦除,然后用一个相对高电压脉冲的绵长序列从头写入)。但关于大大都运用来说,闪存写入操作并不频频,实践上不会影响到均匀功耗。
闪存功耗的一个更进一步要素是怎么分配来自处理器的存取。每个闪存块都包括多个页面,每个页面的巨细最多可达4k字节。要支撑存取,每个页面都必须加电;未被运用的页面则可以维持在低功耗状况。假如一个定时存取的代码段要跨两个闪存页,而不是全在一个页面上,则读取指令相关的能耗就会添加。将跨不同页面的频频存取代码与数据在内存中从头分配,就可以在一只电池的放电寿数期间节约不小的能量,而不用修正物理硬件。
一般有含义的是仿制功用,它更多地运用片上SRAM而不是闪存,无论是读仍是写,尽管这种办法看似是对存储容量的低效运用。电池长寿数的长处可以简单抵消掉更多的内存耗费。
代码优化。能量优化亦可以推翻传统的代码功率概念。几十年来,嵌入体系工程师很重视针对存储器巨细来优化代码,除非功用是压倒全部的方针。能量优化供给了另一种全新的衡量规范集。一个重要的考虑是选用32 bit渠道上现已遍及供给的片上缓存。
对代码巨细的优化可以在缓存中保存更多的可履行代码,然后提高了速度和节约了能耗。不过,函数调用与分支(可从头运用公共代码,然后削减运用的规范)会在同列缓存的代码段之间形成不行预期的抵触。这样当需求从主内存中获取指令时,会形成糟蹋的“缓存推翻”,以及多闪存页激活。
在产品生命周期内要频频作业的那些代码,可以充沛压缩到能装入缓存中,而不做分支或调用函数,这是有含义的。考虑一个烟雾报警器:即便报警器每周触发一次(或许源于厨房活动所发生的过多烟气),也仅是报警器十年寿数中3.15亿次事情中的520个。绝大部分时刻中,代码只需读一下传感器值,然后发现其未超阈值,就让处理器中心回来睡觉状况,等候体系定时器的唤醒。
在警报器获取的全部传感器读数中,只需不到0.0002%的状况才会履行警报生成代码。余下99.9998%的代码履行都是中心传感器读取循环;保证这个代码直接在一个缓存列中履行,就成为最低能量运用的要害。其它代码由于运转得很少,可以运用更传统的技能做优化。
能效东西。关于MCU渠道的能效最大化,东西的支撑十分重要。要将不同函数分配到闪存的不同页,就需求这样一种链接器,它可以知道方针MCU的存储器详图。链接器可以取得开发人员的输入成果,看这个块是否被分配在了跨页鸿沟上,并生成现已过非易性存储最高能效优化的二进制码。
一般来说,这个代码也用于保证函数与数据的放置办法,即最常履行的部分不会跨多个缓存列。假如MCU供货商供给了这类东西,则完结这种等级的细节要简单得多,由于他们了解每个方针渠道的存储器布局与功率需求。而第三方供货商完结这东西则要困难得多。
MCU供货商还具体地了解不同外设与片上总线的安排办法。这一常识可以用于东西中,辅导工程师做出不糟蹋功率的挑选。
提示
在工艺技能、%&&&&&%架构以及软件结构之间的权衡决议计划,可以得到奇妙而有时是无法预期的成果。
电源门控可以减轻走漏效应,使更先进的工艺结点成为低作业周期体系的较好挑选。
片上稳压器为规划人员供给了更多灵敏性,可以从一只电池中剥削更多的电荷,而片上dc/dc转化器与功用监控电路则能完结动态的电压缩放。
能感知硬件的软件东西为嵌入体系工程师供给了更多认知才能,然后完结更高的节能。