五部门关于开展2024年新能源汽车下乡活动的通知
提高非易失性存储系统的可靠性
提高非易失性存储系统的可靠性驾驶辅助系统 (ADAS)、医疗和工业应用等复杂系统需要可靠、安全和安全。在这些系统中,固件和相关数据存储在非易失性存储器 (NVM) 中,因为在断电时
驾驶辅助系统 (ADAS)、医疗和工业应用等复杂系统需要可靠、安全和安全。在这些系统中,固件和相关数据存储在非易失性存储器 (NVM) 中,因为在断电时必须保留代码和数据。因此,NVM 在系统可靠性方面起着至关重要的作用。
NVM 可靠性可以用两种方式表示:数据保留时间和循环耐久性。保留时间决定了 NVM 可以保存数据和代码可靠性的时间。耐久性衡量 NVM 可以被重写多少次并且仍然可靠地保存数据和代码。为了抵消这些限制,设计人员通常采用特殊的主机软件和/或硬件,例如采用磨损均衡和/或错误代码校正 (ECC) 技术的闪存文件系统,以确保数据自上次写入后未发生更改。这些措施会导致系统开销,通常会对性能产生负面影响。此外,复杂的补救措施会降低系统的稳健性,尤其是在电源故障期间 NVM 运行的情况下。
今天的 NVM 内存采用下一代技术来提高 NVM 的可靠性。Cypress 等公司凭借其 Semper NOR 闪存引入了片上 ECC 和内部磨损均衡等先进措施,以显着提高闪存 NVM 的保持力和耐用性(见图 1)。
点击查看大图
图 1:今天的 NVM 存储器,如此处显示的 Semper NOR 闪存架构,集成了先进的措施来显着提高 NVM 的保留和耐用性。(:赛普拉斯半导体)
保持力和耐力
NVM 设备需要确保数据的准确存储并且长期可用。同时,系统需要能够频繁更新数据,这会导致存储介质性能下降,从而影响其长期存储数据的能力。通常,闪存设备的耐久性与设备在不丢失数据的情况下可以维持的编程/擦除 (P/E) 周期数有关。保留和耐久性也受用例(即,如何应用编程/擦除/读取操作)和使用环境(即,特别是电压和温度)的影响。
当发生故障时,无论故障机制如何,闪存单元中的位都会损坏。结果是存储在单元格中的信息丢失。误码率 (BER) 为评估损坏提供了一个通用的可靠性指标,并用于定义特定应用程序的预期可靠性。
随着 NVM 设备转向更先进的技术节点,满足目标 BER 以获得所需的保留和耐用性组合变得更加困难。原因是节点更小。因此,它们提供的面积更小,因此存储信息的电荷更少。以更少的费用存储相同的信息使得闪存设备的可靠性更难以维护。
解决可靠性问题的选项
基本上有两种提高 NVM 可靠性的选择:
限度地减少位错误的发生
纠正已发生的位错误
可以通过减少由于编程/擦除循环引起的单元退化来化位错误发生的可能性。这可以通过将此类循环的“磨损”均匀分布在设备中的所有单元上来实现,其方式是限度地减少某些单元对重复存储/擦除信息的暴露。例如,频繁写入同一地址/单元格时会发生过度磨损。传播磨损的标准技术称为磨损均衡 (WL)。
可以使用纠错码 (ECC) 技术纠正已发生的错误。ECC 技术被广泛部署,因此这里不再进一步讨论。有关详细信息,请参阅自动 ECC。相反,本文的其余部分将重点介绍使用磨损均衡来改善系统的 BER。
有两种主要类型的磨损均衡:
由主机软件实现的外部磨损均衡,通常作为闪存文件系统 (FFS) 的一部分
内部磨损均衡集成在 NVM 设备本身中,通常由集成 CPU 管理
外部磨损均衡的主要限制是需要能够执行任务的主机处理器。对于大量也没有能力运行闪存文件系统的小型系统来说,情况通常并非如此。如果 NVM 可以在不需要主机帮助的情况下满足其自身的可靠性目标,则此类应用程序将受益匪浅。在 NVM 中集成磨损均衡,可以显着提高小型应用程序的可靠性。较大的系统也可以受益于内部磨损均衡。在 NVM 中集成磨损均衡大大简化了系统设计,因为工程师无需开发自己的磨损均衡软件,然后验证它是否符合各种安全标准。
内部磨损均衡
Wear Leveling 是通过将逻辑地址映射到物理地址来实现的。逻辑地址呈现给用户。在部件的生命周期内,磨损均衡功能动态地将这些逻辑地址映射到不断变化的物理地址,以保持物理地址上编程/擦除周期的均匀分布。由于擦除操作影响一组地址(通常称为扇区或块),磨损级别映射具有扇区粒度(相对于单个字节或字)。
步是将存储设备的地址空间划分为用户可访问的分区,用于存储用户数据和代码(请参阅边栏:分区),以及用于存储用户不可访问的磨损均衡元数据的分区。元数据包括有关逻辑到物理扇区映射的信息以及断电元数据(请参阅下面的电源故障)。
边栏:分区
第二级 NVM 分区使开发人员能够配置单个 NVM 设备以实现长期保留和高耐用性。例如,一个代码分区可以提供 25 年的保留,而在同一个 NVM 设备中,可以配置一个数据分区(即文件系统使用、数据记录等)以支持大约 100 万次编程/擦除的耐久性周期。侧边栏图显示了此类分区的示例。
点击查看大图
侧边栏图:下一代NOR Flash支持二级分区,支持代码和系统参数的长期保留,以及数据记录等应用的高耐久性。(:赛普拉斯半导体)
每个分区都可以像传统 NOR 设备一样使用。配置和设置分区后,开发人员无需进一步努力来管理和使用分区。
交换候选人将从“高耐力”分区中的扇区中选择。所有这些扇区构成了所谓的磨损均衡池。由于“Long Retention”分区被排除在磨损均衡池之外,“Long Retention”中的扇区将永远不会被交换,从而限度地保留它们。
磨损均衡只能应用于用户地址空间。这意味着包含磨损均衡元数据的地址空间不受磨损均衡功能管理。因此,通过提供冗余来保证该地址空间的可靠性。这是基于单元内的冗余以及通过将数据存储在多个单元中提供的冗余。对该机制的详细讨论超出了本文的范围。
每当用户地址空间中的扇区被擦除并超过给定阈值时,将启动重新映射或交换操作并更新扇区映射。由于编程/擦除操作相对较慢(几毫秒),与擦除操作本身相比,重新映射和更新映射表的时间可以忽略不计。
但是,还需要访问逻辑到物理映射信息以进行读取操作。与编程/擦除操作相比,读取访问需要在纳秒内完成。为了提供这样的性能,存储在专用闪存地址空间中的映射信息需要在上电 (POR) 期间镜像到快速 RAM 设备中并保存在那里(见图 2)。
点击查看大图
图 2:磨损均衡映射信息需要在快速 RAM 中进行镜像,以便能够在纳秒内完成读取操作。(:赛普拉斯半导体)
图 3 显示了采用内部磨损均衡的系统中的操作流程。如前所述,磨损均衡由扇区擦除操作触发。重要的是要注意,对于绝大多数扇区擦除,要擦除的扇区的编程/擦除计数将低于阈值,并且不会启动扇区交换。因此,仅执行标准擦除过程(在步骤 4 结束)。在需要交换的极少数情况下,将调用交换过程。
点击查看大图
图 3:采用内部磨损均衡的系统中的操作流程,在本例中,是在赛普拉斯的 Semper NOR 闪存中实现的 EnduraFlex 架构。(:赛普拉斯半导体)
请注意,映射表是逻辑到物理扇区地址的映射。验证位实际上是三个非易失性标志,用于验证非易失性操作是否已成功完成。数据有效位是一个屏蔽位,用于将交换扇区中的无效数据屏蔽为全 0。
步骤1:逻辑扇区A映射到物理扇区X,逻辑扇区B映射到物理扇区Y,依此类推。
第 2 步:用户向逻辑扇区 A 发送擦除命令。
第 3 步:擦除物理扇区 X
第 4 步:检查物理扇区 X 是否达到阈值:是否需要交换?
如果没有结束进程
第 5 步:找到擦除次数少的交换候选扇区(在本例中为物理扇区 Y)
第 6 步:在 Flash 中编程映射表。请注意,RAM 中的映射表尚未更新。
第 7 步:程序验证位 1
第八步:将物理扇区Y中的数据复制到已经被擦除的扇区X中。
第 9 步:程序验证位 2
第 10 步:更新 RAM 中的映射表。
步骤 11:擦除物理扇区 Y
第 12 步:程序验证位 3
第十三步:擦除完成
现在,用户完成擦除映射到物理扇区 Y(空白)的逻辑扇区 A,其中 Y 的编程/擦除周期少于物理扇区 X。逻辑扇区 B 现在映射到物理扇区 X 并存储原始数据(即,逻辑扇区 B 包含与交换之前相同的数据。)通过在每个触发扇区交换执行的擦除周期重复此序列,磨损均衡池中的所有扇区在其整个生命周期中将具有统一的擦除循环历史记录。
图 4 显示了一个模拟,其中将约 130 万个编程/擦除周期应用于逻辑扇区 (128)。内部磨损均衡功能将 130 万个周期分布到 256 个扇区,导致每个扇区的平均周期数为 5089。
点击查看大图
图 4 分布在 256 个扇区中的约 130 万个编程/擦除周期的模拟结果,每个扇区的平均周期数为 5089。(:赛普拉斯半导体)
请注意,BER、数据保留和耐用性密切相关。BER 由与编程/擦除周期数的指数相关表示。因此,如果编程/擦除周期数减少 10 次方,则 BER 将改善几个数量级。虽然完整的可靠性分析超出了本文的范围,但显然磨损均衡对 NVM 可靠性具有显着的积极影响。内部磨损均衡将磨损均衡集成到存储设备中,以完全透明的方式为任何主机系统提供这种级别的改进可靠性。
电源故障
实施可靠存储时关键的问题和技术挑战之一是对电源故障的鲁棒性。具体来说,NVM 设备依赖于映射表是正确的。这就提出了一个问题,即如何处理更新映射信息时可能发生的电源故障情况,因为错误可能会导致整个 NVM 设备受到损害。
正常擦除操作期间的电源故障会使要擦除的扇区“未完全擦除”。与擦除操作关联的标志指示此状态并提示在下一个上电周期后重新擦除。
磨损均衡期间的电源故障更加复杂,因为物理擦除操作不再限于用户尝试擦除的扇区。现在它涉及到由磨损均衡算法触发的额外擦除操作;请参见图 3,其中物理扇区 Y 已被磨损均衡算法擦除,并且对应用程序不可见。因此,电源故障恢复例程需要成为磨损均衡算法的一部分。
假设在图 3 中,在第 11 步断电。当电源恢复时,设备首先读取磨损均衡地址空间中的映射表并检查其有效性,然后在 RAM 中重建映射表。闪存中映射表的每个条目都包含一个验证位 (1,2,3)。如果在第 11 步断电,则中断交换的验证位可能为 (0,0,1)。擦除扇区(扇区 Y)的数据有效位设置为“无效”,然后交换{A=Y,B=X}记录在映射表(RAM)中。现在逻辑扇区A映射到物理扇区Y,但物理扇区Y的擦除可能仍然不完整。这不是问题,因为用户试图擦除逻辑扇区 A,但擦除被中断并记录为中断。下次上电后,需要重新擦除扇区 A。
点击查看大图
图 5:需要将加电序列添加到磨损均衡算法中,以便在擦除周期中从电源故障中恢复。(:赛普拉斯半导体)
上述上电顺序确保磨损均衡算法不会破坏任何用户数据。也不要求应用程序实现任何特殊的软件/硬件算法。因为磨损均衡是在内部实现的,所以整个过程对应用程序是透明的。这使得磨损均衡对于高可靠性应用非常有用,例如满足可靠性目标可能具有挑战性的汽车应用。
集成磨损均衡的下一代 NVM 内存对于高可靠性行业至关重要。例如,赛普拉斯 Semper NOR 闪存将先进的 NVM 技术与磨损均衡和 ECC 相结合,可实现超过 1M 的耐久性和 25 年的数据保留。
无相关信息