新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 从硅片到软件的嵌入系统

从硅片到软件的嵌入系统

作者: 时间:2012-12-27 来源:网络 收藏

本文引用地址://www.cghlg.com/article/148163.htm

采用动态电压缩放

采用动态电压缩放

  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供应商还详细地了解不同外设与片上总线的组织方式。这一知识可以用于工具中,指导工程师做出不浪费功率的选择。

  提示

  在工艺技术、IC架构以及结构之间的权衡决策,可以得到微妙而有时是无法预期的结果。

  电源门控可以减轻泄漏效应,使更先进的工艺结点成为低工作周期系统的较好选择。

  片上稳压器为设计人员提供了更多灵活性,能够从一只电池中榨取更多的电荷,而片上dc/dc转换器与性能监控电路则能实现动态的电压缩放。

  能感知硬件的工具为系统工程师提供了更多认知能力,从而实现更高的节能。


上一页 1 2 下一页

关键词: 系统 嵌入 软件 硅片

评论


相关推荐

技术专区

关闭