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

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

3天内不再提示

用于嵌入式系统引导的闪存设备比较

星星科技指导员 来源:嵌入式计算设计 作者:Zhi Feng 2022-10-24 11:55 次阅读

本文探讨了嵌入式系统引导环境中不同类型的闪存的优缺点。

许多嵌入式系统利用非易失性存储器来存储引导代码、配置参数以及系统断电时持续存在的其他数据。如今,闪存在大多数嵌入式系统中都扮演着这一角色。鉴于需要闪存的应用范围很广,有多种架构和功能集可以满足应用的不同要求。

常见的闪存技术包括并行或 SPI NOR 闪存、SLC NAND 和 eMMC 器件。最近,通用闪存存储(UFS)也已成为一种选择。本文探讨了嵌入式系统引导环境中这些不同类型的闪存的优缺点。

嵌入式系统引导的复杂性

从外部角度来看,启动嵌入式系统可能看起来很容易。但是,启动涉及许多步骤,如果需要快速可靠的启动,则需要仔细考虑设计。

pYYBAGNWDNyANWOKAAFOJ0eUSLs636.png

图 1:嵌入式系统启动序列的阶段。

通常,嵌入式系统启动顺序(参见图 1)涉及以下步骤:

通电或硬件重置:这是引导嵌入式系统的第一步。它可以是打开系统电源,也可以是触发系统的硬件重置。从此时起,系统开始执行其代码。

引导ROM或引导:内核跳转到复位向量并尝试执行第一个代码。一些处理器具有小型内部引导ROM,可以在制造时进行编程。引导ROM代码可以执行处理器的一些基本初始化,例如设置时钟,堆栈,中断等。引导ROM还可以检测引导加载程序的存储位置;例如,在外部诺或 NAND 闪存设备中。

某些处理器可以引导以直接从外部闪存设备执行代码。这通常需要处理器的硬件本身支持与外部闪存设备通信的特定总线接口,因为尚未完成软件初始化。

引导加载程序 XIP 或重影:对于要执行代码的处理器,必须随机访问代码存储。如果使用 NOR 闪存设备来存储引导加载程序,则处理器可以直接从闪存设备运行。此方法通常称为原位计算 (XIP)。如果使用 NAND 或 eMMC 设备,首先需要将引导代码复制到系统的 RAM。然后处理器可以跳转到RAM空间并执行。此方法称为重影或存储和下载 (SnD)。

此阶段的引导加载程序有时称为第二阶段引导加载程序(例如,Linux 应用程序的 U-boot)。它用于设置系统和加载其余软件,如操作系统和文件系统。它还可以执行系统初始化,并通过引导 ROM 或硬件尚未本机支持的外围设备继续引导过程。

引导加载程序初始化后,系统可以开始处理基本中断和简单的操作任务。

内核操作系统和/或文件系统:这是一个可选步骤,具体取决于系统。如果嵌入式系统使用操作系统或文件系统,则还需要将这些软件组件加载到 RAM 内存中。由于操作系统和文件系统的软件尺寸较大,因此系统完成此步骤并在完全操作模式下运行需要更长的时间。

加载完所有软件组件后,用户应用程序可以开始运行:一个常见的用例是使用 Flash 存储第二阶段引导加载程序以及操作系统和文件系统软件。引导加载程序启动后,系统功能有限,并继续引导过程以加载操作系统和文件系统。

不同目标应用中的优先级

在决定用于启动嵌入式系统的闪存类型之前,请考虑目标应用程序要求和用户期望。表1总结了不同细分市场的首要任务。

poYBAGNWDPCALeeXAADkD8TDK0k898.png

表 1.应用程序优先级因细分市场而异。

对于汽车和工业应用,首要任务如下:

功能安全:功能安全是关于消除由于电子系统故障行为引起的危害而导致的不合理风险。这是设计汽车或工业应用时的主要考虑因素。选择在设计时充分考虑功能安全的设备有助于实现所需的汽车或工业安全标准,如 ISO 26262。在需要高级功能安全的情况下,使用专为功能安全而设计的设备至关重要。

可靠性:当使用闪存设备存储启动代码时,必须在产品使用寿命内的每次上电时可靠地读取正确的数据。Flash 的数据保留时间对于通常静态的引导加载程序代码非常重要。对于手机等消费类产品,预期的寿命较短。但是,对于汽车和工业应用,闪存设备必须持续使用15年以上,并且需要在系统的整个生命周期内保持数据完整性。

安全性:随着设备继续互连,数据安全性变得越来越重要。具有强大安全技术的数据存储可以保护关键内容,例如专有信息和商业机密。较新的闪存设备提供不同级别的安全性,以保护数据不被覆盖、意外擦除和复制到克隆设备。通过加密和其他加密技术,Flash 设备可用于受信任的引导链。

性能:引导设备的性能直接影响系统启动时间和操作,特别是在必须保证系统在通电后的一定时间内启动和运行的应用中。对于用于启动的闪存设备,性能因素不仅与从设备中读取数据的速度有关,还与设备本身通过系统电源初始化的速度有关。

耐用性:闪存器件中的耐久性定义了存储器在保持其指定保留时间的同时可以编程和擦除的次数。对于许多嵌入式系统,数据必须可靠多年,即使闪存被反复读取、擦除和编程。

虽然 NOR 闪存和 SLC NAND 通常具有 10K 至 100K 范围的耐久周期,但 MLC NAND 可能只有 5K 周期或更少。TLC NAND甚至可以提供数百个周期。通常,闪存单元密度越大,在永久单元故障之前可以执行的擦除和写入就越少。

非专利闪存、固态混合固态显示器、电子微处理器和超压离子的比较

根据其基础技术的性质,每种类型的Flash设备都具有可能适合一种应用而不适用于另一种应用的特性。表2提供了与嵌入式系统设计相关的特性的比较。

pYYBAGNWDPeAC41uAAEnPqT6noA482.png

表 2.嵌入式系统中使用的不同闪存类型的比较。

表中提到的一些因素通常是众所周知的,例如密度、支持的温度范围和读取带宽。根据特定的引导加载程序,设计人员可以选择合适的引导设备。例如,如果引导加载程序大小非常大,则需要更大的设备来存储这样的引导加载程序。然而,大多数引导加载程序,如u-boot,都是以兆字节为单位的,并且完全在NOR闪存的密度范围内。这意味着用户可能有许多选择需要考虑。

其他需要考虑的重要因素包括器件初始化时间、XIP 功能和数据可靠性。

设备初始化:这是设备通电和它可以可靠地输出数据之间的时间。如果系统需要非常快的启动时间,则初始化时间可能是一个重要因素。如果系统需要直接从闪存执行代码(即,而不是重影到RAM),则在NOR闪存上运行是唯一合适的选择,如下所示。

原位 XIP:XIP 功能使系统能够减少昂贵的 RAM 大小。处理器可以直接从 NOR 闪存设备执行,而不是将代码重影到 RAM。这种方法可以减少处理器支持DRAM器件所需的引脚数量,从而显著降低PCB和整体系统成本。

引导要求

不同的应用程序对引导有不同的要求。在这里,我们从汽车应用中选择一个示例来讨论特定的启动要求。

图2所示为典型的汽车系统。所有子系统都通过CAN总线或其他网络协议连接。

poYBAGNWDQKASsmOAAEtxBkz92E169.png

图 2:汽车系统的框图。

在汽车应用中,CAN总线的启动要求为100 ms。这意味着子系统ECU(电子控制器单元)必须能够在POR之后的100 ms内回复CAN消息。如果子系统无法在 100 ms 内启动,则可能会错过关键的 CAN 报文,这是不可接受的结果。在设计汽车子系统时,除了汽车应用的所有常见要求(如功能安全、温度范围等)之外,快速启动时间是一项重要要求。

对于需要非常快的启动时间的应用,例如上图所示的汽车外壳,需要快速存储器作为启动设备。可能犯的一个错误是将快速读取带宽与快速启动时间相关联,因为这只关注将代码和数据从启动闪存移动到RAM所需的时间。但是,如果考虑到设备初始化时间和引导加载程序大小,很明显,从引导闪存读取时间不是引导序列中的主要瓶颈。

现代 NOR 闪存设备(如赛普拉斯的森珀 NOR 闪存)提供快速初始化时间和高带宽,以最大限度地减少启动。当森帕 NOR 在八进制或超总线总线协议中与 JEDEC xSPI 接口一起使用时,其带宽可能高达 400 MB/s。考虑到典型的 U 型引导大小介于 1 MB 到 2 MB 之间,400 MB/s 的读取带宽转换为 5 ms 读取时间,再加上 Semper NOR 闪存的最大 300 μs 器件初始化时间。与此相比,eMMC 初始化时间约为 100 毫秒,UFS 初始化时间为 50 毫秒。使用森帕 NOR 闪存的整个系统启动明显低于汽车 100 ms 启动要求。NOR 闪存设备也符合 ISO 26262 标准,并且符合 ASIL-B 标准。

在某些应用中,例如工业或物联网,希望直接在闪存设备(XIP)上执行,而不是将引导加载程序复制到RAM。将其与使用 eMMC 进行存储并使用 LPDDR2 RAM 执行代码的存储和下载启动方案进行比较。DRAM的宽数据总线需要多层PCB设计才能适应。如果处理器直接在 NOR 闪存上运行 XIP,例如使用 x8 八通道 SPI 闪存,则针脚数量会显著减少(参见图 3)。结果是节省了多达2至4层的PCB设计,从而降低了整体系统成本。

poYBAGNWDQqABSoQAADA3K8n1NE025.png

图 3.使用诺睿闪存作为 XIP 设备。

如前所述,汽车和工业应用要求闪存设备能够可靠地运行超过 15 年,并保持存储数据的完整性。通常,单线互连器件和 MLC NAND 的误码率比 NOR 器件差。位错误可能发生在写入存储器阵列时,或由读取干扰或其他因素引起的电子泄漏。为了补偿丢失数据的风险,NAND器件中需要高度的ECC校正方案。原始 SLC NAND 设备甚至可能需要在主机端使用 ECC 功能。eMMC有自己的控制器来处理这些功能。SLC NAND 和 eMMC 器件中对纠错和坏块管理的需求增加了整体系统的复杂性和成本。这也是满足功能安全和数据可靠性要求的重要考虑因素。

NOR闪存可以提供这些类型的应用所需的耐用性。例如,在森佩尔 NOR 闪存中实施的 EnduraFlex 技术可在 512 Mb 密度设备中提供超过 100 万次循环的耐久性,在 1 Gb 设备中提供超过 250 万次循环的耐久性。还可以对这些设备进行分区和预配,使其具有高耐用性和较长的保留时间区域,从而保证 25 年的数据完整性。因此,单个NOR闪存设备能够灵活地将引导加载程序代码和文件系统代码存储在单个设备上,这两者都是保留和耐久性要求的两端;即,开发人员可以为引导加载程序代码配置长保留区域,同时将其他内存区域保留为文件系统的高耐久性区域。

总之,尽管SLC NAND、eMMC和UFS的每比特成本较低,但NOR闪存器件仍然是嵌入式系统引导设备的最佳选择,特别是在需要非常快系统启动时间的应用中。NOR闪存技术提供重要的可靠性特性,如快速初始化时间、XIP功能以及配置长保留期和高耐久性区域的灵活性,正迅速成为需要快速可靠启动的系统的首选非易失性存储器。

审核编辑:郭婷

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

    关注

    5044

    文章

    18810

    浏览量

    298410
  • NAND
    +关注

    关注

    16

    文章

    1651

    浏览量

    135721
  • CAN总线
    +关注

    关注

    145

    文章

    1896

    浏览量

    130328
收藏 人收藏

    评论

    相关推荐

    嵌入式系统的未来趋势有哪些?

    (ML)技术的快速发展,嵌入式系统将更多地整合这些先进技术,以支持智能决策和自动化。在设备上直接运行AI和ML模型,进行图像识别、自然语言处理、预测分析等任务,将极大提升嵌入式
    发表于 09-12 15:42

    嵌入式系统怎么学?

    嵌入式系统怎么学? 随着物联网、智能制造等新技术的兴起,嵌入式系统的应用范围更加广泛。包括但不限于工业控制、汽车电子、医疗设备、智能家居、
    发表于 07-02 10:10

    嵌入式系统软硬件基础知识大全

    嵌入式系统是现代科技发展的一个重要分支,广泛应用于工业控制、消费电子、医疗设备、汽车电子等领域。本文试图全面解析嵌入式
    发表于 05-09 14:12

    入门嵌入式系统这些知识你知道吗?

    嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在R
    发表于 05-03 09:54 388次阅读

    嵌入式fpga是什么意思

    嵌入式FPGA是指将FPGA技术集成到嵌入式系统中的一种解决方案。嵌入式系统是一种为特定应用而设计的计算机
    的头像 发表于 03-15 14:29 1008次阅读

    铠侠正式发布业界首款车载UFS 4.0嵌入式闪存

    存储器解决方案的全球领导者铠侠株式会社宣布,该公司已开始提供业界首款面向车载应用的通用闪存(UFS)4.0版嵌入式闪存设备的样品。
    的头像 发表于 02-22 16:21 845次阅读

    嵌入式系统发展前景?

    的发展前景也十分广阔。 随着物联网和智能设备的快速发展,嵌入式系统将更为普遍地应用于各种设备和设施,包括家用电器、医疗
    发表于 02-22 14:09

    嵌入式学习步骤

    开发板上测试固件以及在实际设备上进行测试。 嵌入式系统的多样化发展,它将更为广泛地应用于各个领域,实现智能化、网络化、自动化的目标。同时,随着人工智能和机器学习技术的发展,
    发表于 02-02 15:24

    啥是嵌入式嵌入式都有啥?薪资如何?前景如何

    嵌入式系统(Embedded Systems)是一种特殊类型的计算机系统,被嵌入到其他设备系统
    的头像 发表于 01-17 16:39 461次阅读
    啥是<b class='flag-5'>嵌入式</b>?<b class='flag-5'>嵌入式</b>都有啥?薪资如何?前景如何

    什么是嵌入式系统嵌入式系统的具体应用

    嵌入式,一般是指嵌入式系统用于控制、监视或者辅助操作机器和设备的装置。
    的头像 发表于 12-20 13:33 2123次阅读

    嵌入式系统Nor Flash引导存储器和固件存储有何关系?

    嵌入式系统需要可靠且快速的引导存储器来在系统启动期间加载初始引导代码和操作系统
    的头像 发表于 12-05 14:08 520次阅读

    嵌入式学习——ElfBoard ELF1板卡 之文件系统的介绍

    文件系统通常提供目录或文件夹用于记录文件,在很多系统中目录本身也是文件,在这些系统中,目录是管理文件系统结构的
    发表于 11-24 10:02

    有无操作系统嵌入式Linux驱动设备有何区别?

    有无操作系统嵌入式Linux驱动设备有何区别? 嵌入式系统是指集成电子设备上的计算机
    的头像 发表于 10-29 17:29 597次阅读

    什么才是嵌入式Flash的边界?

    什么才是嵌入式Flash的边界? 嵌入式Flash是一种非易失性存储器,常用于嵌入式电子设备中,如智能手机、平板电脑、数码相机、车载娱乐
    的头像 发表于 10-29 17:29 411次阅读

    什么是嵌入式Linux?

    Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。简单来说,是除了电脑之外可以运行程序的
    发表于 10-11 13:47