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

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

3天内不再提示

闪存技术如何解决操作系统性能下降的问题

电子设计 来源:郭婷 作者:电子设计 2019-02-06 09:41 次阅读

随着物联网节点变得越来越强大,处理要求可能会提升到全新的水平,需要 Linux 等完全嵌入式操作系统 (OS) 才能正确管理所有正在运行的复杂任务。虽然将此代码存储在闪存 microSDHC 卡上很方便,但大多数闪存 microSDHC 卡仅适用于数据存储而非操作系统存储,不过供应商已经提出了一些创新的解决方案。

本文介绍了嵌入式操作系统的作用,以及为何将操作系统和应用程序代码同时放在物联网节点中的 microSDHC 闪存卡上通常是明智之举;然后解释了闪存卡的性能下降模式,以及操作系统如何受到这种性能下降现象的特别影响;接下来展示了设计人员如何通过新的闪存实施办法来克服这种性能下降,从而确保物联网节点的实施高效且可靠。

为何使用嵌入式操作系统

对于某些物联网应用而言,可在远程物联网节点上执行的预处理越多,物联网节点需要传输回中央集线器的数据就越少,这样可释放网络带宽。经过预测试的嵌入式操作系统可通过有效处理大量单独任务来支持复杂的预处理,并以可预测(确定性)的方式处理多重任务。当然,这将对微控制器提出额外的要求,需要更快的时钟速度,更重要的是,需要更多的程序存储器。

商业或开源成品嵌入式操作系统的另一优势在于采用经预测试的可靠代码,很少需要更新。例如,可用的嵌入式 Linux 操作系统可能只是每季度更新一次,或是仅安装紧急安全补丁。嵌入式操作系统和所需应用程序代码可能需要 8 Gb 或更多的存储空间,由于操作系统很少更新,因此将操作系统存储在由技术人员手动(物理)更新的 microSDHC 闪存卡上会更方便。这也适用于未来的内存扩展,因为下次技术人员访问时,现有的 4 GB 闪存卡可以根据需要轻松更换为 8 Gb 或容量更大的卡(图 1)。

图 1:Swissbit Class 10 microSDHC S-140u 存储卡支持高达 104 Mb/s 的速度,足够用于高速访问程序存储器。

与通过无线网络更新的闪存相比,在手动更新的 microSDHC NAND 闪存卡上存储千兆字节的嵌入式操作系统具有多个优势。在无线网络中,根据所使用的仲裁方案,更新 4 GB 或更大的嵌入式操作系统可能会导致从操作通信中窃取无线带宽。通过网络更新还需要一个两倍于正常容量的 microSDHC 卡,因为需要足够的存储空间来运行操作系统和容纳传入的更新。

由于无线电活动以及更高的闪存写入电压和功率要求,通过无线方式更新闪存代码也会缩短电池寿命。

与数据存储相比,从闪存执行的嵌入式操作系统对闪存单元也提出了不同的要求。大多数商用闪存 microSDHC 卡都是制造商设计用于数据存储的。最常见的商业用途是移动设备的多媒体存储。虽然视频、图像或音频文件中的多个位错误可能会被最终用户忽视,但关键嵌入式操作系统文件中只要有一个位错误,就可能导致整个系统出现故障。

闪存的使用寿命有限制。对闪存阵列的每次写入操作都会缩短阵列的寿命。每个半导体闪存规范列出了有限数量的擦写周期。随着闪存单元接近规定的限制,单元磨损并且不接受新编程状态的可能性变得越来越大。

磨损均衡是防止由于写入操作引起闪存阵列性能下降的一种常见方法。写入并非写入相同的闪存位置,而是均匀地分布在整个闪存半导体存储器阵列上,确保写入内容在闪存矩阵中均匀分布。通过磨损均衡,当微控制器写入物理存储器中的单个位置时,闪存控制器可以将该位置映射到闪存阵列中的不同位置。

读取干扰错误如何发生

操作系统文件的访问频率比数据文件要高得多,因此无法容忍文件位错误。在某些情况下,核心操作系统文件可能会被不断读取,进而在闪存阵列中引入位错误。

闪存以块的形式排列,每个块包含许多页。对存储器来说,块是可擦除的最小部分,而页是可读取或编程的最小部分。闪存块的一般大小为 256 KB,每个块可包含 64 页,每页 4 KB。每个页还包括额外的 64 个字节,用于纠错码 (ECC)、擦除计数和到物理转换信息的逻辑。

在一页数据的闪存读取操作期间,即使页中仅有一个字节需要读取,也会对页所属的整个块施加较小的读取电压。由于闪存处理单元技术,也会在块中的周围页内产生较小的电压。这可以将电子注入到单元绝缘层中,类似于对单元进行编程,这就是它被称为“软编程”的原因。将较小的读取电压重复施加到同一个块可能最终干扰非正在读取的闪存页的编程。随着时间的推移,这可能导致将相邻单元的状态改为不同的值。

虽然大多数 NAND 闪存 microSDHC 卡都有某种形式的纠错功能来纠正单元错误,但由软编程引起的错误数量可能很多,以至于达到无法纠正的临界水平,从而导致微控制器从位位置读取不同的值,造成文件损坏错误。这些位错误称为读取干扰错误。

用于数据存储的 NAND 闪存 microSDHC 卡很少出现读取干扰错误。在闪存阵列上执行写入操作时,磨损均衡操作过后,闪存位置被重新编程,因此消除了任何软编程影响。但是,用于嵌入式操作系统的闪存阵列很少编程,这使得读取干扰错误成为现实。

单阶存储单元 (SLC) 闪存卡的额定读取次数为一百万次,多阶存储单元 (MLC) 闪存卡在读取干扰错误发生之前的额定读取次数为 100,000 次。对于数据闪存,读取干扰错误被认为非常罕见,以至于规格书中通常不指定这些数字。

使用 RDM 防止读取干扰错误

为了防止读取干扰错误,Swissbit 开发了一种称为读取干扰管理 (RDM) 的功能。在 Swissbit 的 RDM 中,闪存卡控制器会跟踪每个闪存块的读取操作次数。当块达到内部定义的读取操作次数时,控制器将数据移动到新块,类似用于写入操作的磨损均衡。如有必要,在对新块进行写入操作期间,SD 控制器的纠错码 (ECC) 会纠正任何损坏的数据。

Swissbit 的 SFSD8192N1BM1MT-I-QG-221-STD 8 GB S-450u UHS-I Class 10 microSDHC 闪存卡中已实施 RDM。S-450u 专为使用嵌入式操作系统的工业应用而设计,具有许多复杂的物联网节点中嵌入式 Linux 操作系统和应用程序代码所需的足够空间。在 SDR104 模式下,S-104u 可支持高达 104 Mb/s 的数据访问速度。

使用 microSDHC 卡执行程序存储器

如前所述,microSDHC 卡通常仅用于数据存储器,因此大多数 Harvard 架构微控制器上的外设仅支持访问作为数据存储器的 microSDHC 卡。这限制了可用选项。

现有解决方案会读取 microSDHC 卡并将程序存储器加载到 RAM 中,然后从 RAM 中执行。RAM 芯片不仅增加了电路板的成本,而且程序扩展仅限于 PC 板上可用的板载 RAM 数量。

MicroSDHC 卡能够在 SD 模式或 SPI 模式下连接。

要将微控制器连接到作为程序存储器的 S-450u microSDHC 卡,所选的微控制器需要支持两种 microSDHC 总线协议之一:

图 2:使用 SD 模式连接 microSDHC 卡时,使用一个简单的六信号接口,以提供最快的内存访问速度。

映射到程序存储器的 SDHC 卡 SD 模式控制器外设(图 2)。此外设可以是外部外设,也可以是内部微控制器外设。接口由六个信号组成:四位数据 (DAT[0-3])、一个时钟 (CLK) 和一个双向指令/响应信号 (CMD)。数据一次传输四位,并提供最快的程序执行速度。主机控制器或微控制器为 microSDHC 卡提供时钟。

一个可配置 SPI 接口,支持芯片内执行 (XIP)。可通过在 SPI 模式下访问 microSDHC 卡来执行卡中的代码,提供快速数据传输,但传输速度不如 SDHC 卡模式。XIP 存储器将卡的存储器映射到微控制器的程序存储器空间,使得 microSDHC 卡访问对主机固件保持透明。

microSDHC 卡在 SD 卡模式下启动。要选择单位 SPI 模式,在开机后的前六个时钟,DAT3 信号必须上拉至 VDD,同时通过将 CMD 下拉至 VSS 发送 RESET(复位)命令 (000000b) 至卡。此后,卡将保持 SPI 模式,直至关机。

Maxim Integrated 的 MAX32652 Arm® Cortex®-M4F 微控制器是专为物联网节点设计的低功耗微控制器。它有一个片载 QSPI XIP 接口,如果配置正确,能够执行 microSDHC 卡的代码。

MAX32652 还有一个完整的 SDHC 接口,主要用于数据存储器存储。

需要注意的是,微控制器的这些接口必须是程序存储器接口。无论使用何种总线协议或接口,微控制器都需要包含一些片载闪存启动代码,以便初始化 microSDHC 卡的接口。

插座安全

用于工业应用 microSDHC 卡的插座经常被忽视。对于要求坚固耐用的应用,锡或类似触头材料会随着时间的推移而变色或失去其拉伸强度。金触点虽然价格稍贵,但是能提供稳固的触头连接,确保其拉伸强度不会随时间改变,因此物有所值。

Amphenol ICC 的 10101704J6#2A 通用闪存 (UFS) 和 microSDHC 连接器/插座可为任何 microSDHC 兼容卡提供稳固的连接(图 3)。该插座具有防磕碰触点,可防止存储卡在插拔过程中卡住。

图 3:10101704J6#2A UFS 和 microSDHC 卡连接器/插座支持现有的 microSDHC 和下一代 UFS 卡,数据传输速度高达 6 Gb/s。

此 Amphenol 插座兼容新的通用闪存 (UFS) 格式,因此还支持未来扩展,UFS 外形尺寸与 microSDHC 类似,但触点封装不同(图 4)。UFS 卡具有差分双向数据传输功能,支持两倍于 microSDHC 的传输速度。

图 4:左侧是 microSDHC 卡,右侧是新的 UFS 卡。UFS 卡具有差分双向数据传输功能,支持两倍于 microSDHC 的传输速度。

一些联网的物联网节点可能位于 Wi-Fi 不可用或不实用的远程位置。对于上述情况,可通过无线蜂窝数据连接来执行联网。这需要使用一张用户 SIM 卡,该 SIM 卡也需要插入。

节省电路板空间的一个简单方法是使用 microSDHC 和 SIM 卡插座组合,如 Molex 的 1041681620 双插座,同时支持 SIM 卡和 microSDHC 卡(图 5)。该插座还具有金触点,可在恶劣环境中实现稳固的连接,并采用防磕碰触点。

图 5:1041681620 组合 SIM 卡和 microSDHC 卡插座可显著减少板空间,提供防磕碰触点,防止插拔错误。

总结

虽然闪存 microSDHC 卡过去常用于数据存储,但目前正在寻求改进,以支持嵌入式操作系统在芯片内执行程序存储器的独特需求。此演进过程的一部分包括开发可支持持续读取请求的更快闪存。此外,微控制器正在演进,以支持可从外部 microSDHC 卡可靠执行代码的新存储器接口,同时减少或消除闪存错误。

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

    关注

    5056

    文章

    18955

    浏览量

    301671
  • 物联网
    +关注

    关注

    2900

    文章

    43994

    浏览量

    369866
  • 操作系统
    +关注

    关注

    37

    文章

    6658

    浏览量

    123111
收藏 人收藏

    评论

    相关推荐

    实时操作系统和分时操作系统的区别

    操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统和实时操作系统,分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统
    发表于 11-14 17:39 1.3w次阅读

    关于嵌入式操作系统和PC机的操作系统

    我想问下PC操作系统和嵌入式操作系统的区别?如果,也许这个问题很幼稚,PC机可以外接硬盘装系统,嵌入式处理器外接NAND 闪存系统,那为什
    发表于 01-24 13:53

    10390A系统性能分析软件技术数据

    10390A系统性能分析软件技术数据
    发表于 03-12 15:22

    镜像对系统性能的影响有哪些?

    镜像抑制基础知识可减少AD9361和AD9371中正交不平衡的技术镜像的来源、含义及对系统性能的影响
    发表于 03-29 07:59

    如何提高FPGA的系统性能

    本文基于Viitex-5 LX110验证平台的设计,探索了高性能FPGA硬件系统设计的一般性方法及流程,以提高FPGA的系统性能
    发表于 04-26 06:43

    实时操作系统(RTOS)是指什么

    计算机三级知识点总结五嵌入式系统篇实时系统(RTS)实时操作系统(RTOS)实时操作系统是实时系统使用的
    发表于 12-23 06:39

    可重构硬件操作系统技术

    可重构硬件操作系统技术:为了充分发挥可重构计算的高性能和可编程能力, 需要将可重构资源和硬件任务纳入到操作系统管理范畴. 因此面向可重构计算的操作系
    发表于 10-06 09:41 23次下载

    优化BIOS设置提高系统性能

    BIOS设置对系统性能的影响非常大,优化的BIOS设置,可大大提高PC整体性能,不恰当的设置会导致系统性能下降,运行不稳定,甚至出现死机等现象。下面就BIOS中影响
    发表于 10-10 14:27 43次下载

    操作系统教程_孙钟秀

    本书的特点之一是:既致力于传统操作系统基本概念、基本技术、基本方法的阐述,又融合现代操作系统最新技术发展和应用的讨论,着眼于操作系统学科知识
    发表于 12-09 14:55 0次下载
    <b class='flag-5'>操作系统</b>教程_孙钟秀

    操作系统原理_孙钟秀

    本书的特点之一是:既致力于传统操作系统基本概念、基本技术、基本方法的阐述,又融合现代操作系统最新技术发展和应用的讨论,着眼于操作系统学科知识
    发表于 04-11 14:23 0次下载

    RTOS操作系统

    RTOS操作系统RTOS操作系统RTOS操作系统RTOS操作系统RTOS操作系统
    发表于 12-28 15:30 0次下载

    欧拉(openEuler)系统峰会2021 麒麟软件数字化系统性能要求

    银河棋麟操作系统充分满足数字化系统性能要求,银河棋麟操作系统为数字化建设提供安全可信支撑。
    的头像 发表于 11-09 11:24 1402次阅读
    欧拉(openEuler)<b class='flag-5'>系统</b>峰会2021 麒麟软件数字化<b class='flag-5'>系统性能</b>要求

    欧拉(openEuler)Summit 2021:基于AI的操作系统性能调优引擎

     欧拉(openEuler)Summit 2021直播会上,重点介绍基于AI的操作系统性能调优引擎。
    的头像 发表于 11-10 10:46 2088次阅读
    欧拉(openEuler)Summit 2021:基于AI的<b class='flag-5'>操作系统性能</b>调优引擎

    openEuler Summit开发者峰会:基于AI的操作系统性能调优引擎A-Tune

    openEuler Summit开发者峰会:基于AI的操作系统性能调优引擎A-Tune
    的头像 发表于 11-10 10:51 1565次阅读
    openEuler Summit开发者峰会:基于AI的<b class='flag-5'>操作系统性能</b>调优引擎A-Tune

    Linux操作系统运行参数自动调整技术

    Linux操作系统运行参数的自动调整是一个复杂而关键的技术,它可以显著提高系统性能、稳定性和资源利用率。通过使用自适应算法特别是内核态的机器学习框架、性能监控工具和配置管理工具,能够在
    的头像 发表于 08-22 09:53 222次阅读
    Linux<b class='flag-5'>操作系统</b>运行参数自动调整<b class='flag-5'>技术</b>