为您的嵌入式应用选择最佳闪存设备

为您的嵌入式应用选择最佳闪存设备,第1张

当今的大多数嵌入式系统都依赖片上闪存或 SRAM 作为程序存储器(固件)。然而,这些存储器在成本和功耗方面通常很昂贵,并且还将程序大小限制为片上实现的存储器数量。协议和存储器设计的最新进展使固件能够以就地执行 (XiP) 方式直接从片外非易失性存储器 (NVM) 设备中运行——这种方法可以潜在地缓解上述挑战。

本文将介绍嵌入固件的传统解决方案的优缺点。随后将深入讨论 XiP 解决方案,最后提出如何选择最佳 XiP 架构的建议。

为您的嵌入式应用选择最佳闪存设备,第2张

 

为您的嵌入式应用选择最佳闪存设备,第3张

嵌入式闪存长期以来一直是微控制器 (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 供应商正在寻找新的内存架构来满足新兴智能物联网边缘设备的性能和功耗要求。XiP 的使用正在成为高性能、低功耗系统的首选解决方案。借助 XiP,MCU 可以采用标准 CMOS 工艺技术实现,而只有外部闪存阵列需要特殊的 NVM 工艺。MCU 增加了一个保存常用代码段的指令缓存。每当处理器在缓存中找不到所需的指令(缓存未命中)时,MCU 就会启动对外部闪存的访问,以将丢失的指令带入缓存中。随着新 JEDEC xSPI 协议 (JESD 251) 的引入,闪存接口可以高达 200MHz,并在双数据速率 (DDR) 中具有 8 位宽的数据路径切换。

NXP 和 ST 推出的可以使用外部闪存进行就地执行 (XiP) *** 作的 MCU。ST 的 STM32L4+ 和 STM32L5 分别是基于 Arm Cortex-M4 和 M33 内核的中端 MCU,而高端 NXP i.MX RT1050 和 RT10xx 系列的其他成员实现了 600MHZ 双发 Cortex-M7 和 32KB 指令-缓存。恩智浦还通过其基于 M4 的中档 KineTIs K8x 产品和最近推出的基于 Arm Cortex-M33 的 MCU RT600 支持 XiP。ST MCU 和 KineTIs K8x 结合了片上闪存和对 XiP 的支持。RT600 和 RT10xx 产品的设计没有片上闪存,使它们能够实现非常激进的价格点。

在为 eXecute-in-Place 选择外部闪存设备时,首先要问的问题是固件的哪些部分将在 XiP 模式下运行。一些设计人员选择混合方法,将程序的性能关键部分保留在片上(ROM、闪存或 SRAM),并在 XiP 模式下使用外部闪存来扩展系统。

关于此的问题:

是从片上 ROM、闪存还是 SRAM 执行全部或部分程序?如果是,这些内存类型中的哪一种?

是否会以 XiP 方式直接从外部闪存执行全部或部分程序?

如果 (a) 的答案是 SRAM,则需要 SoC 外部的闪存以在启动时加载程序。设计人员可以选择 Adesto Phoenix(标准闪存)、Fusion(针对电池 *** 作优化的闪存)或 EcoXiP(针对 XiP 优化的八进制闪存)。对于成本敏感且吞吐量不重要的应用程序,应选择 Phoenix。Fusion 适合具有非常严格的功率限制的最佳应用。只有当客户还需要 XiP 模式下的高性能或需要八进制闪存设备的吞吐量以实现非常快速的启动或频繁的数据读取 *** 作时,才应在这种情况下考虑 Adesto 的 EcoXiP——人工智能推理引擎就是这种情况。

假设 (b) 的答案是肯定的(至少部分固件需要 XiP),接下来的问题是弄清楚需要多少性能。由于采用高速八通道 DDR 接口,EcoXiP 的吞吐量大约是标准闪存设备的 4 倍。此外,wrap-and-conTInue 命令进一步提高了可实现的吞吐量。有很多问题要问:

SoC 会包含指令缓存吗?(没有指令缓存,XiP 性能会非常低;但是 EcoXiP 相对于 Quad 设备的优势会更显着)

CPU 将以什么频率运行,SPI 总线的频率是多少?

在 XiP 中运行时需要什么级别的性能?

设备是否需要现场软件更新(通常称为无线 (OTA) 更新)?

(c) 的答案至关重要。在低频和对 XiP 性能的低要求下,直接从标准 Quad SPI 闪存设备执行是非常可行的。然而,即使指令缓存中的未命中率非常低,与用完 EcoXiP 相比,在 Quad 设备上执行将提供大约 50% 的 CPU 性能。

请注意,如果对 (d) 的响应是肯定的,如果 SoC 是在没有其他代码存储存储器的情况下构建的(仅依赖于 XiP),EcoXiP 的读写功能将使 OTA 更新更容易。OTA 更新还有其他解决方案,无需读写,但它们都是 SRAM 密集型的,并且需要复杂的固件。

审核编辑:郭婷

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2998644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存