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

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

3天内不再提示

eMMC芯片磨损导致MCU和车辆无法正常运作,这是怎么回事?

电子设计 来源:电子设计 作者:电子设计 2021-01-20 13:59 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

监督成本| eMMC NAND闪存技术和用例需求

ODI最近对较旧的Teslas Model S和Model X车辆提出的信息要求突显了工作负载疏忽,其中基于NVIDIA Tegra 3处理器和集成8GB eMMC NAND闪存的主控制单元(MCU)遇到了问题。当引入新的固件更新为电动汽车(EV)带来附加功能时,问题变得更加复杂。这充当进一步激发NAND闪存磨损进度的燃料。尽管在一开始固件不是问题,并且记录的数据具有足够的内存来处理工作量,但每次固件升级都带来了新功能,从而减少了每次更新的存储空间。应ODI的信息请求,特斯拉列出了2,399项投诉和现场报告,7,777项保修索赔以及4,746项与MCU替换方案有关的非保修索赔。倒车时,故障的MCU导致后置摄像头图像显示遗失。随着NAND闪存全部耗尽,驾驶员不能再使用车辆的某些功能,例如HVAC(除雾),与ADAS相关可听得见的提示音,自动驾驶仪和转向信号灯,严格地来说尽管车主仍然可以驾驶车辆,但不能再充电,使汽车无法运行。

eMMC模块因为是以NAND闪存技术为基础而具有预定的使用寿命。它们具备有限的程序/擦除(P/E)周期,即使公司最初按照这些规范进行设计,他们也必须预见到同一系统随着时间的推移必须应对不断增加的工作负载挑战。最后,这问题有三个方面。缺乏对NAND闪存技术的了解,以及对更加复杂和多面的用例了解,并且假设驱动器的使用期限完全取决于NAND闪存技术–而不是正在使用的闪存控制器

了解NAND闪存技术

根据特斯拉维修专家的说法,由于eMMC中的NAND闪存单元结构,在较旧的Model S和X组件中发现的基于嵌入式NAND的eMMC磨损。在一定程度上是对的。不同类型的NAND闪存技术具有不同(但始终是有限的)的P/E周期数或他人所称的“写入周期”。

SLC NAND闪存技术大约10万次P/E周期

MLC NAND闪存技术大约10 000-3500 P/E周期

TLC NAND闪存技术大约3000个P/E周期

QLC NAND闪存技术大约1000-100次P/E周期

这意味着一旦这些周期用完,驱动器将再也无法可靠地存储数据。根据特斯拉的报告,Hynix单元“针对eMMC中每个NAND闪存块,额定3,000个编程/擦除周期”。

要了解NAND闪存单元为何总是具备有限的P/E周期,必须了解其基础技术。NAND闪存是一种非易失性存储器(NVM)技术,它通过电荷陷阱技术或浮栅MOSFET晶体管将数据存储在制成的存储单元阵列中。通过在晶体管的控制栅极上施加高电压,同时将源极和漏极接地,沟道中的电子可以获得足够的能量来克服氧化物势垒,并从沟道移入浮栅。在浮栅中捕获电子的过程是闪存设备的编程(或“写入”)操作,该操作对应于逻辑位0。相反,擦除操作从浮栅中提取电子,从而切换存储在其中的数据NAND闪存单元磨损,因为编程和擦除周期最终会损坏浮栅和基板之间的隔离层。这减少了数据保留,并可能导致数据丢失或意外编程的单元。

了解用例的工作负载

特斯拉电动汽车对于任何存储应用都是一个充满挑战的环境,这不仅是因为汽车质量对温度和功能安全性的要求,而且因为每辆汽车的使用方式都不同。在这种情况下,eMMC模块会受到每日行驶时间,每日充电时间,每日音乐流式传输时间以及一系列其他因素的影响。此外,极其重要的功能和特性取决于MCU能够可靠地执行其工作。这个生态系统中的eMMC具有非常独特的工业级工作负载,只有使用符合工业标准设计的高质量闪存控制器才能适当取得。

特斯拉认为“以每块0.7的额定每日P/E周期使用率计算,在设备中每块平均获得3,000个P/E周期需要11到12年的时间,以每块 1.5的每日P/E周期使用速率的第95个百分位,在设备中平均累积3,000个P/E周期需要5到6年时间。”归根结底,复合固件更新的苛刻性质使这些驱动器比预期还早崩溃。这就引出了一个问题,为什么这些MCU这么早崩溃?

了解NAND闪存控制器的作用

闪存控制器在高端存储系统中的作用常被忽略。在NAND闪存经常引起关注的地方,许多人忽视了评估控制器在管理其应用程序方面的真实能力,而所选闪存则预定义了P/E周期。尽管闪存技术在定义驱动器的使用寿命方面起着重要作用,但所选的控制器应掩盖闪存的所有固有缺陷,从而延长其使用寿命,确保不会出现任何故障设备或数据损坏。

例如,闪存控制器可以针对任何特定的存储设备执行最佳类型的纠错编码(ECC),完全取决于所选NAND闪存的特性以及控制器中可用的处理性能。在不同类型的NAND闪存中,不同类型的错误也更为常见,例如多层单元(MLC)中更容易出现读取干扰错误,而其他控制器功能(如损耗均衡)和垃圾回收的时间也会受到NAND闪存中过度配置的影响。因此,控制器需要仔细匹配NAND闪存的特性,如果忽略这一点,驱动器在预测的时间之前提早崩溃也就不足为奇了。这是一项昂贵的疏忽,选择正确的闪存控制器是设计高效可靠的存储系统(如eMMC模块)必不可少的一个部分。

归根结底,在工业中–故障系统和数据损坏不像在其他市场中那样被接受,因为期望寿命和故障成本更为急切。像eMMC模块这样的存储系统需要针对其独特的工作负载进行设计,并进行适当的管理,以避免在其特定领域发生故障。最后,闪存控制器在掩饰所选NAND闪存技术的缺陷方面起着非常重要的作用,应被视为核心组件,而不仅仅是NAND闪存的支援。

审核编辑 黄昊宇

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

    关注

    463

    文章

    54422

    浏览量

    469270
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19126

    浏览量

    403787
  • emmc
    +关注

    关注

    7

    文章

    274

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    UUU 工具无法使用 Windows 11 将映像刷新到 EMMC,怎么解决?

    我能够使用 Windows 10 系统上的 UUU 工具成功地将二进制文件刷新到我们定制的 SOM 板(基于 i.MX8QXP 处理器)上的 eMMC。但是,我无法在 Windows 11 系统上
    发表于 04-13 07:08

    S32M276官方程序无法运行,请问这是怎么回事,要怎样解决?

    寄存器“pc”(4 字节):0xEFBEADDE 错误:CPU 运行时无法读取寄存器 16 (XPSR) 从硬件读取寄存器“xpsr”(4 字节):0xEFBEADDE 警告:无法读取内存 @ 地址0xDEADBEEE 下载其他程序,能
    发表于 03-31 06:26

    调试ddrinit的时候,ddrinit在trap时出现输出乱序的情况,这是怎么回事呢?

    我在调试ddrinit的时候,ddrinit在trap时出现输出乱序的情况,这是怎么回事呢?
    发表于 03-30 07:28

    无法emmc 启动怎么解决?

    嗨,我先把映像69刷入SD卡,正常开机, 在我启动到 tfcard 上的系统后,我使用dd将图像写入 emmc 模块的命令。 然后我弹出 tfcard 以尝试从 emmc 启动 我无法
    发表于 03-23 06:49

    KT6368A蓝牙芯片在广播间隙导致的电源抖动引起mcu被唤醒说明

    客户咨询KT6368A 蓝牙芯片在1.5s 广播间隔的低功耗模式下,每 1.5s 出现一次电源 “打嗝” 现象是否正常,文档说明该现象因芯片广播 + 休眠的循环工作模式导致(广播约 1
    的头像 发表于 11-26 20:55 738次阅读
    KT6368A蓝牙<b class='flag-5'>芯片</b>在广播间隙<b class='flag-5'>导致</b>的电源抖动引起<b class='flag-5'>mcu</b>被唤醒说明

    把qspi0配置成了普通的fifo模式,读什么都返回0xff,这是怎么回事

    我把qspi0配置成了普通的fifo模式,不是xip模式,但是现在读什么都返回0xff,读id也返回0xff,也不是没有数据,RXDATA寄存器里是有数据的,但是就是0xff,这是怎么回事
    发表于 11-06 06:57

    rt thread studio 创建的K210工程编译后很多警告是怎么回事

    用rt thread studio创建的 K210工程,编译后很多警告,这是怎么回事?有人知道吗?
    发表于 10-13 06:29

    STM32标准库在Keil5移植rtthread nano后无法显示oled内容是怎么回事

    单独把OLED_Update()函数独立出来就无法执行到,屏幕黑屏怎么回事呢? 或者有没有大佬有在Keil5 STM32标准库上移植rtthread系统又使用到oled屏幕显示的示例代码,可以参考看看吗?? ?
    发表于 09-22 08:28

    micropython 文件同步失败是怎么回事

    您好! 在自己的stm32f407vet6开发板上,构建的rt-thread添加了micropython模块。 下载运行执行正常。执行将文件下载到开发板或者点击“文件同步”时,总提示 “所连接设备可能未处于repl状态或者不是一个micropython设备”。 这是
    发表于 09-17 07:28

    stm32f103c8t6 PWM设置后不生效是怎么回事

    , 通道channl1,编译无任何错误,执行shell中的pwm命令,设置了周期和占空比,但是读出设置一直是62周期,62占空比,无法设置进去。 这时怎么回事?直接在代码中写入周期和占空比,读出来还是62.
    发表于 09-10 07:26

    工业网关的emmc是什么

    是详细解析: 1. eMMC的核心组成 NAND Flash存储芯片 :用于实际存储数据,类似U盘或SSD的存储介质。 控制器 :集成在eMMC内部,负责管理数据读写、错误纠正(ECC)、磨损
    的头像 发表于 08-15 10:21 1010次阅读

    服务器数据恢复—硬盘离线导致raid上层的卷无法挂载的数据恢复案例

    服务器数据恢复环境&故障: 某公司一台服务器上有一组由24块FC硬盘组建的raid。 服务器出现故障,无法正常工作。 经过初步检测,管理员发现导致服务器故障的原因是raid中有两块硬盘掉线,
    的头像 发表于 07-29 13:00 714次阅读

    SPI+DMA一直发会进入HAL_BUSY无法跳出是怎么回事

    为HAL_SPI_STATE_BUSY_TX_RX状态,导致HAL_SPI_TransmitReceive_DMA无法正常运行,我不知道是不是哪里设置不对还是其他问题导致的。
    发表于 07-18 06:38

    变频器无法正常控制负载原因及解决

    变频器无法正常控制负载的原因可能涉及多个方面,以下是一些常见的原因及相应的解决方法: 一、原因分析 1. 控制信号损坏或错误 控制信号是变频器与电机之间沟通的桥梁,如果信号在传输过程中受到干扰或丢失
    的头像 发表于 06-21 16:54 1756次阅读
    变频器<b class='flag-5'>无法</b><b class='flag-5'>正常</b>控制负载原因及解决

    在SDK:Slavefifo5bit的范例中想加多一个线程去做其他的功能,用了threadcreate之后usb设备就无法初始化了是怎么回事

    你好,我在SDK:Slavefifo5bit的范例中想要加多一个线程去供我做其他的功能,可是我是用了threadcreate之后我的usb设备就无法初始化了,请问是怎么回事呢??
    发表于 05-22 07:25