协议和存储器设计的最新进展使得能够以原位制动 (XiP) 方式直接从片外非易失性存储器 (NVM) 设备运行固件。
当今的大多数嵌入式系统都依赖于片上闪存或SRAM来存储程序存储器(固件)。然而,这些存储器在成本和功耗方面通常很昂贵,并且还将程序大小限制在片上实现的存储器量。协议和存储器设计的最新进展使得能够以原位制动 (XiP) 方式直接从片外非易失性存储器 (NVM) 器件运行固件,这种方法可能会缓解上述挑战。
本文将介绍用于嵌入固件的传统解决方案的优缺点。接下来将深入讨论XiP解决方案,并总结有关如何选择最佳XiP架构的建议。
嵌入式闪存长期以来一直是微控制器(MCU)的中流砥柱。这些 MCU 通过一个或多个存储固件和其他常量的 NVM 阵列来增强片上易失性存储器阵列。实现这一目标需要通过大量额外的制造步骤,使用NVM单元增强基本的CMOS工艺。过去,添加这些制造步骤的成本很小,但随着CMOS技术的进步,将标准CMOS工艺转变为支持NVM的工艺变得越来越复杂和昂贵。事实上,虽然当今批量生产中最先进的CMOS工艺低于10nm,但带有嵌入式闪存的CMOS在40nm方面落后于几代人。
结果是,虽然MCU供应商可以使用更快,更便宜且需要更低功率的工艺技术构建产品,但使用嵌入式NVM可以防止他们这样做。即使他们选择支持嵌入式NVM的老一代产品,支持闪存的工艺与不支持闪存的工艺之间的价格差距也可能超过40%。此外,将特定的 NVM 大小提交到 MCU 中可能适用于一个应用程序,但对于另一个应用程序来说,这可能是错误的容量。
尽管面临所有这些挑战,嵌入式NVM将在很长一段时间内成为MCU的中流砥柱。对于可以在不太先进的CMOS工艺中实现的较小设计,使用嵌入式闪存将是最有效的解决方案。但性能更高、功耗更低的MCU需要替代解决方案。
使用嵌入式闪存的另一种方法是由外部串行闪存设备支持的片上SRAM阵列。启动时,外部闪存的内容被复制到片上SRAM,然后MCU开始从SRAM执行。该解决方案的最大优点是SRAM可以在最先进的CMOS工艺下制造,而无需修改工艺。但是,该解决方案需要固件的两个副本 - 一个在外部闪存中,另一个在SRAM中。即使在高级工艺节点中,大型片上SRAM阵列也相当昂贵。而且,由于SRAM泄漏电流,因此当系统处于关断模式时,它们需要关闭,每次MCU唤醒时都需要重复耗电且耗时的复制操作。最后,与嵌入式闪存的情况一样,特定MCU中SRAM的大小是固定的,对于特定应用的需要,它可能太大或太小。
MCU供应商正在寻找新的内存架构,以满足新兴智能物联网边缘设备的性能和功耗要求。XIP的使用正在成为高性能、低功耗系统的首选解决方案。借助 XiP,MCU 可以采用标准 CMOS 工艺技术实现,而只有外部闪存阵列需要特殊的 NVM 工艺。MCU通过一个指令缓存进行了增强,该缓存保存了常用的代码段。每当处理器在高速缓存中找不到所需的指令(高速缓存未命中)时,MCU就会启动对外部闪存的访问,以将缺少的指令存储在高速缓存中。随着新的 JEDEC xSPI 协议 (JESD 251) 的引入,闪存的接口可能高达 200MHz,具有双数据速率 (DDR) 中的 8 位宽数据路径切换。
最近,恩智浦和意法半导体都推出了MCU,可以使用外部闪存进行原位扫描(XiP)操作。意法半导体的STM32L4+和STM32L5分别是基于Arm Cortex-M4和M33内核的中档MCU,而高端恩智浦 i.MX RT1050和RT10xx系列的其他成员则实现了600MHZ双问题Cortex-M7和32KB指令缓存。恩智浦还通过其基于中档M4的Kinetis K8x产品和最近推出的RT600(基于Arm Cortex-M33的MCU)支持XiP。意法半导体的MCU和Kinetis K8x实现了片上闪存和对XIP支持的组合。RT600 和 RT10xx 产品的设计没有片上闪光灯,使它们能够达到非常激进的价格点。
为原位访问选择外部闪存设备时,首先要问的问题是固件的哪些部分将在 XiP 模式下运行。一些设计人员选择混合方法,将程序的性能关键部分保留在芯片上(在ROM、闪存或SRAM中),并在XiP模式下使用外部闪存来扩展其系统。
与此相关的问题:
全部或部分程序是从片上ROM、闪存还是SRAM执行的?如果是,这些内存类型中有哪些?
全部或部分程序是否会以 XiP 方式直接从外部闪存中执行?
如果(a)的答案是SRAM,则需要在SoC外部使用闪存在引导时加载程序。设计人员可以选择阿德斯托凤凰(标准闪光灯)、融合(针对电池操作优化的闪光灯)或 EcoXiP(针对 XiP 优化的八通道闪光灯)。对于成本敏感且吞吐量不重要的应用程序,应选择 Phoenix。Fusion将适合具有非常严格的功率限制的最佳应用。在这种情况下,只有当客户还需要XiP模式下的高性能或需要八通道闪存设备的吞吐量以实现非常快速的启动或频繁的数据读取操作时,才应考虑Adesto的EcoXiP-就像人工智能推理引擎一样。
假设(b)的答案是肯定的(至少部分固件需要XiP),下一个问题是弄清楚需要多少性能。由于采用了高速八通道 DDR 接口,EcoXiP 可提供大约 4 倍于标准闪存设备的吞吐量。此外,“包装并继续”命令进一步提高了可实现的吞吐量。有许多问题要问:
SoC 是否包含指令缓存?(如果没有指令缓存,XiP性能将非常低,但是EcoXiP相对于四通道设备的优势将更加显着)
CPU 将以什么频率运行,SPI 总线的频率是多少?
在 XiP 中运行时需要什么级别的性能?
设备是否需要现场软件更新(通常称为无线 (OTA) 更新)?
(c)的答案是至关重要的。在低频和对XiP性能的低要求下,直接从标准四通道SPI闪存器件中执行是相当可行的。但是,即使指令缓存中只有很小百分比的未命中,与耗尽 EcoXiP 相比,在 Quad 设备之外执行也能提供大约 50% 的 CPU 性能。
请注意,如果对 (d) 的响应为正,则 EcoXiP 的边写读取功能将使 OTA 更新更加容易,前提是 SoC 是在没有其他代码存储存储器(仅依赖于 XiP)的情况下构建的。还有其他用于OTA更新的解决方案,没有边写边读,但它们都是SRAM密集型的,需要复杂的固件。
审核编辑:郭婷
-
嵌入式
+关注
关注
5062文章
18984浏览量
302379 -
存储器
+关注
关注
38文章
7443浏览量
163541 -
sram
+关注
关注
6文章
762浏览量
114601
发布评论请先 登录
相关推荐
评论