在 IoT 应用程序中平衡内存性能和功耗
扫描二维码
随时随地手机看文章
为物联网应用选择电子元件的两个关键标准是功率预算和性能。自从电子产品问世以来,就一直在这两者之间进行权衡——要么获得最佳功耗,要么获得最高性能。根据应用程序,系统架构师对系统中的不同组件有不同的要求。例如,系统可能需要高性能控制器但低功耗存储器。一个典型的案例是可穿戴设备,其中控制器需要功能强大,但由于 SRAM 用作暂存器,因此预计它具有尽可能低的功耗。
大多数系统分为以下几大类:
始终开启:这些系统没有将功耗作为主要标准,因为它们几乎总是由不间断电源供电。在 BOM 预算允许的情况下,此类系统需要尽可能高性能的组件。大多数插入墙上插座的设备都属于这一类。
电池供电:这些系统处于功率性能范围的另一端。它们完全由板载电池供电。此类系统倾向于将功耗放在首位。此类系统通常还优先考虑小尺寸,因为它们通常是便携式的。示例系统包括我们日常使用的手持设备。
电池供电系统:这些系统位于始终在线系统和电池供电系统之间。他们访问外部电源,但可能无法访问其电源。为避免在这些电源故障期间丢失关键数据,系统设计人员提供了一个小型电池(通常为 240mAh 纽扣电池)来备份 SRAM 和实时时钟 (RTC) 等关键功能。这些系统通常优先考虑高性能,但要求某些组件是低功耗的,以便它们可以仅依靠备用电源运行。
在sram中,性能和功耗之间的权衡是有技术原因的。低功耗SRAMs采用特殊的GIDL(栅极感应漏油)控制技术来控制备用电流,从而控制备用功耗。在上拉或下拉路径中添加了额外的晶体管,导致访问延迟增加,从而延长了访问时间。对于快速sram,访问时间是最高优先级,不能使用这种技术。此外,晶体管的尺寸被放大,以增加电荷流量。这种扩展减少了传播延迟,但增加了功耗。
然而,广泛的应用正在将有线永远在线设备迁移到电池支持或电池供电的移动版本。新一代设备——医疗、手持、消费、通信、工业——都由物联网驱动。他们正在彻底改变设备的功能和通信方式。对于此类设备,无论是针对高性能设计的组件还是针对低功耗设计的组件,都无法满足设计要求。高性能组件具有高电流消耗,因此会过快耗尽电池。低功耗组件的速度不足以满足这些复杂设备的需求。需要同时具有高性能和低功耗的设备。这对于内存来说尤其重要,因为系统的速度实际上只与它最慢的组件一样快,在许多情况下是外部内存。
对低功耗的需求首先影响了微控制器,迫使制造商寻找传统两种工作模式的替代品——活动模式和待机模式。这导致 TI 和 NXP 等公司推出了具有特殊低功耗操作模式的 MCU,称为深度掉电或深度睡眠。这些控制器在正常运行期间全速运行,但在不需要此性能时可以进入低功耗模式。这些低功耗模式可在不影响高性能的情况下降低功耗。今天的控制器能够以 100 MHz 以上的速度运行,比前几代尖端控制器快得多。然而,仅仅优化物联网设备中的控制器并不足以满足其严格的功率预算。在低功耗模式下,外设和存储设备也有望节省功耗。
许多便携式系统从闪存执行代码,但使用 SRAM 作为缓存来存储结果和初始化变量。与 DRAM 和闪存等其他存储存储器相比,SRAM 在密度方面受到限制:目前可用的最高密度 SRAM 为 8 MB,而 DRAM 则以 GB 的倍数提供。但是,MCU 很难直接与 DRAM 或闪存接口,因为这些存储器通常具有较长的写入周期并且无法跟上 MCU 的速度。此外,DRAM由于其刷新周期而具有高功耗。高速运行的 MCU 需要一个可以存储关键数据并快速执行计算而不会显着降低功耗的缓存。SRAM 最适合充当 MCU 和存储存储器之间的缓存。
sram在活动状态和备用状态之间交替,当断电时,数据预计是非易稳定的。这些sram是电池支持的,通常由一个硬币电池。这样的系统给SRAM带来了不同寻常的挑战。只要系统是活动的,它们就需要它们所能获得的最高性能的SRAM,因为它在这些应用程序中充当高速缓存。然而,它们还需要低功耗,以防系统必须切换到电池电源。
断电时,SRAM 切换到板载电池并被监控芯片禁用。只要电池持续使用,系统就可以保持此模式。一旦电路板电源恢复,监控芯片将逐渐用电路板电源为 SRAM 供电。通常,这些芯片的转换需要 1 到 10 毫秒。这个时间不会妨碍系统,因为控制器也需要时间来退出上电复位程序。
考虑到上述因素,SRAM多年来一直在尝试平衡快速和低功耗产品之间的权衡。其中一种解决方案是混合设备,它在访问时间和功耗方面都介于快速和低功耗之间。然而,这些混合 SRAM 无法满足快速 SRAM 的预期性能要求。最好的方法是采用片上电源管理的快速 SRAM,确保高性能和低功耗。
具有片上电源管理的 SRAM 的工作方式与具有片上电源管理的 MCU 类似。除了活动和待机操作模式外,还有深度睡眠操作模式。这样的设置允许 SRAM 在其标准操作模式期间全速访问数据。在深度睡眠模式下,该器件不执行任何功能,因此可以保持极低的电流消耗,比快速 SRAM 的标准待机消耗低 1000 倍左右。表 1 显示了功耗和访问的比较两种常见类型的 SRAM - 快速和低功耗 - 以及具有深度睡眠的快速 SRAM。
这些数字清楚地展示了使用“快速深度睡眠”SRAM 优于标准快速 SRAM 的优势。在 SRAM 大部分时间处于待机模式的应用中,这一优势将更加突出。
在许多最新一代的电池供电系统中,内存功耗的最佳平衡点是存储数据所需的时间和过程中的功耗之间的良好平衡。例如,考虑一个需要每 1 毫秒写入 100 Kb 数据的应用程序。如果我们要使用 Fast SRAM,写入 2 个字节的数据需要 10ns。因此,快速 SRAM 将具有 6% 的占空比,这意味着在 1000 小时的运行中达到 130 瓦时 (WH)。相比之下,执行相同任务所需的低功耗 SRAM 将具有 31% 的占空比,在 2WH 时消耗的功率要少得多。但是,SRAM 并不是在写入 SRAM 时唯一唤醒的组件。在考虑 MCU 的功耗时,该比率可能会偏向于快速 SRAM。
具有深度睡眠的快速 SRAM 完全消除了评估这种权衡的需要。凭借快速 SRAM 的占空比和低功耗 SRAM 的待机电流,这些 SRAM 的功耗比快速 SRAM 低得多,占空比也比低功耗 SRAM 短得多。这意味着在将数据写入 SRAM 时,MCU 需要在更短的时间内保持活动状态。对于电池供电的系统,由于具有深度睡眠的快速 SRAM 的占空比较低,系统功率的整体下降可能非常显着。表 2 显示了我们在赛普拉斯进行的电池供电测试的结果。与使用低功耗 SRAM 的系统相比,深度睡眠将电池寿命延长了约 20%,占空比更短。
使用深度睡眠模式(无论是 MCU 还是 SRAM)时,需要考虑一个重要因素——进入和退出深度睡眠模式所需的时间。如果两个活动周期之间的时间间隔与 SRAM 进入或退出深度睡眠模式所用的时间相比太短,那么该方法将没有用。这可能是广泛采用具有深度睡眠模式的 SRAM 的最大障碍。对于 Cypress 的具有深度睡眠的快速 SRAM,这个数字是 300µs(最大值)。
一个普遍的担忧,尤其是在电池供电的系统中,是深度睡眠等新功能需要大量重新设计。在过渡使用监控芯片的标准电池支持系统时,情况并非如此。在标准的电池供电系统中,地址线、数据线和控制信号由处理器驱动。然而,SRAM 的低电平有效芯片使能由监控芯片驱动,这在正常操作期间不会增加显着的开销。在电源故障期间,监控芯片从板电源无缝切换到电池电源并禁用 SRAM,从而防止数据丢失。
同样的系统可以很容易地迁移到具有深度睡眠功能的快速 SRAM。要使用深度睡眠功能,有一个特殊的引脚 (DS),将其切换为低电平有效以进入深度睡眠模式。标准快速 SRAM 上的等效引脚恰好是 NC(无连接)。因此,从标准快速 SRAM 升级到具有深度睡眠的快速 SRAM 需要最少的设计工作(必须连接一个额外的引脚)。
在正常运行期间,SRAM 可以高速运行。在电源故障期间,SRAM 可以通过置位深度睡眠信号自动切换到深度睡眠模式。当电源出现故障时,管理芯片禁用 SRAM 并拉低深度睡眠引脚,这将自动将 SRAM 切换到深度睡眠模式。处理器启动后,深度睡眠引脚切换为高电平以将 SRAM 恢复为标准高速 SRAM。