0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

为您的嵌入式应用选择最佳闪存器件

星星科技指导员 ? 来源:嵌入式计算设计 ? 作者:Gideon Intrater ? 2022-12-01 17:10 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

当今的大多数嵌入式系统都依赖于片上闪存或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位宽的数据路径。

最近,恩智浦和意法半导体都推出了可以使用外部闪存进行就地扩展(XiP)操作的MCU。意法半导体的STM32L4+和STM32L5分别是基于Arm Cortex-M4和M33内核的中端MCU,而高端恩智浦 i.MX RT1050和RT10xx系列的其他成员则实现了具有32KB指令缓存的600MHZ双问题Cortex-M7。恩智浦还通过其基于M4的中端Kinetis K8x产品和最近推出的基于Arm Cortex-M33的MCURT600支持XiP。意法半导体MCU和Kinetis K8x实现了片上闪存和对XiP的支持的组合。RT600 和 RT10xx 产品的设计没有片上闪存,因此价格非常激进。

选择用于就地扩展的外部闪存设备时,首先要问的问题是固件的哪些部分将在 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 倍。此外,包装并继续命令进一步提高了可实现的吞吐量。有许多问题要问:

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

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

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

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

(c)的答案至关重要。在低频和对XiP性能要求较低的情况下,直接从标准四通道SPI闪存设备执行是相当可行的。但是,即使指令缓存中的失误百分比非常小,与用完 EcoXiP 相比,从 Quad 设备执行将提供大约 50% 的 CPU 性能。

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

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    18089

    浏览量

    371167
  • 嵌入式
    +关注

    关注

    5161

    文章

    19792

    浏览量

    319797
  • 存储器
    +关注

    关注

    39

    文章

    7664

    浏览量

    168443
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AMD嵌入式处理器的应用添能助力

    AMD 面向嵌入式应用打造高性能、高能效处理器,全方位满足网络、存储、汽车、工业、零售、医疗、测试与测量等领域的各种需求。无论的应用是涉及 AI 加速、机器视觉、安全数据处理还是高分辨率显示
    的头像 发表于 07-07 14:09 ?1369次阅读

    嵌入式开发,如何选择适合的系统?

    嵌入式ARM开发中,面对多种操作系统的选择,如何做出最适合项目的决策?本文将为梳理常见系统的特性,帮助您快速了解它们的优缺点,以便更好地选择适合的系统。引言在
    的头像 发表于 05-20 11:32 ?528次阅读
    <b class='flag-5'>嵌入式</b>开发,如何<b class='flag-5'>选择</b>适合的系统?

    嵌入式去哪个城市好?

    对于嵌入式技术从业者来说,选择哪个城市发展是一个重要的决策。以下是一些建议: 一线城市 北京作为中国的首都和科技中心,北京拥有众多顶尖的高校和研究机构,以及大量的高科技企业,嵌入式
    发表于 04-02 10:12

    展会预告 | 启扬智能邀共赴2025德国国际嵌入式

    技术及应用解决方案、工业计算机、嵌入式技术/IC/元器件等行业,提供嵌入式产品相关服务。图片来源于网络此次亮相,启扬智能将展出瑞芯微、恩智浦、全志系列板卡产品,多尺寸安卓屏一
    的头像 发表于 02-21 17:29 ?737次阅读
    展会预告 | 启扬智能邀<b class='flag-5'>您</b>共赴2025德国国际<b class='flag-5'>嵌入式</b>展

    嵌入式机器学习的应用特性与软件开发环境

    设备和智能传感器)上,这些设备通常具有有限的计算能力、存储空间和功耗。本文将介绍嵌入式机器学习的应用特性,以及常见的机器学习开发软件与开发环境。 嵌入式机器学习的应用特性与优势 由于嵌入式
    的头像 发表于 01-25 17:05 ?760次阅读
    <b class='flag-5'>嵌入式</b>机器学习的应用特性与软件开发环境

    新手怎么学嵌入式?

    的运行机制。例如,了解数据结构中的链表、栈和队列,对于在嵌入式编程中管理数据非常有帮助。 2. 选择合适的编程语言 嵌入式开发中常用的编程语言有 C 和 C++。C 语言是嵌入式开发
    发表于 12-12 10:51

    如何使用 RISC-V 进行嵌入式开发

    RISC-V是一种开源的指令集架构(ISA),它允许任何人设计、制造和销售基于RISC-V的处理器,这嵌入式开发提供了极大的灵活性和创新空间。以下是使用RISC-V进行嵌入式开发的基本步骤: 一
    的头像 发表于 12-11 17:32 ?2170次阅读

    PROM器件嵌入式系统中的应用

    PROM(Programmable Read-Only Memory,可编程只读存储器)器件嵌入式系统中有着广泛的应用。以下是对PROM器件嵌入式系统中应用的分析: 一、PROM
    的头像 发表于 11-23 11:22 ?1435次阅读

    嵌入式系统中的连接器选择

    嵌入式系统中,连接器的选择是一个至关重要的环节,它关系到系统的稳定性、可靠性和数据传输效率。以下是对嵌入式系统中连接器选择的分析: 一、连接器类型 板对板连接器 : 用于
    的头像 发表于 11-07 09:44 ?919次阅读

    嵌入式学习建议

    实际需要选择芯片开发实际产品。注意,不要把微处理器(MPU与微控制器(MCU)概念相混淆,微处理器只是微控制器的内核。 ⑧关于嵌入式操作系统的选择。可以等到具有一定实践基础后,选择
    发表于 10-22 11:41

    什么是嵌入式?一文读懂嵌入式主板

    在现代科技浪潮中,嵌入式技术已成为支撑各种智能设备和系统运行的核心力量。那么,究竟什么是嵌入式嵌入式系统,顾名思义,是将计算机的硬件和软件嵌入到某种设备或系统中,以实现特定功能的计算
    的头像 发表于 10-16 10:14 ?2763次阅读

    AMD 面向嵌入式系统推出高能效 EPYC 嵌入式 8004 系列

    AMD 凭借其 EPYC? 嵌入式处理器不断树立行业标准,网络、存储和工业应用提供卓越的性能、效率、连接与创新。今天,我们正以第四代 AMD EPYC 嵌入式 8004 系列处理器扩展这一
    发表于 10-11 13:58 ?1146次阅读

    的应用选择最佳的bq2416x器件

    电子发烧友网站提供《的应用选择最佳的bq2416x器件.pdf》资料免费下载
    发表于 10-09 09:33 ?0次下载
    <b class='flag-5'>为</b><b class='flag-5'>您</b>的应用<b class='flag-5'>选择</b><b class='flag-5'>最佳</b>的bq2416x<b class='flag-5'>器件</b>

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备的“大脑”,主要功能是根据需要管理和控制设备
    的头像 发表于 09-30 10:05 ?1696次阅读

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件选择 在开始
    的头像 发表于 09-02 09:11 ?1367次阅读