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闪存的支援。

审核编辑 黄昊宇

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

    关注

    455

    文章

    50714

    浏览量

    423154
  • mcu
    mcu
    +关注

    关注

    146

    文章

    17123

    浏览量

    350992
  • emmc
    +关注

    关注

    7

    文章

    203

    浏览量

    52723
收藏 人收藏

    评论

    相关推荐

    ADS1259不加延时就无法读到数值,这是怎么回事啊?

    最近调试ADS1259,发现在SPI的速度降低到1Mhz的时候,就不能读到正确的数值了。看了芯片手册上在发送命令两个命令代码之间也没有说要加延时啊。我发现加入延时再把SPI的SCLK速度调到2M就能读数据。不加延时就无法读到数值,这是
    发表于 12-09 07:56

    TPL5010不供电时存在较大漏电流,导致芯片无法正常烧录的原因?

    目前在电路测试时发现在VDD未供电时,RST管脚存在大概330uA的漏电流,这是正常的吗,此时管脚电压在1.2V左右,导致芯片无法烧录,
    发表于 11-08 09:46

    TLV320AIC10信号每100HZ相位偏移180°,这是怎么回事

    您好,我们使用了贵公司生产的TLV320AIC10这一款AD/DA芯片,发现信号每100HZ相位偏移180°,想问下这是怎么回事?谢谢
    发表于 11-08 07:36

    FILTER42软件解压后无法使用是怎么回事

    在TI下载的FILTER 42 软件解压后无法使用  是怎么回事
    发表于 09-26 08:01

    TPA3116D2输出只有5V电压,这是怎么回事

    您好,如图所示,电源电压为12V,负载4欧姆:1.输出只有5V电压,这是怎么回事?2、在此基础上输入信号幅度稍微加大一点,输出信号会不重失真,抖动。根据PDF资料显示,TPA3116D2片子,效率为90%,我目前的现像是否正常
    发表于 09-09 06:07

    大带宽服务器推流延迟怎么回事

    大带宽服务器推流延迟怎么回事
    的头像 发表于 09-03 14:52 294次阅读

    DS250DF410的USB一直无法连接是怎么回事呢?

    请问一下TI的工程师,DS250DF410这个芯片的评估板USB一直无法连接是怎么回事呢?如下图所示
    发表于 08-19 07:02

    wifi_promiscuous_enable(1)导致WBT重置是怎么回事

    0x03 负载 0x3ffe8000,LEN 3380,房间 4 尾 0 Chksum 0x48 负载 0x3ffe8d40,LEN 7256,房间 8 尾 0 Chksum 0xc3 CSUM 0xc3 {l 这是怎么回事
    发表于 07-18 08:13

    STM32F103RCT6使用bootloader跳转到app后无法正常运行是怎么回事

    while ((SD_DMAEndOfTransferStatus() == RESET) (TransferEnd == 0) (TransferError == SD_OK))会卡在这里,如果我不用bootloader跳转,而是直接操作SD卡就正常运行,这是
    发表于 06-04 10:05

    cc2642使用看门狗外设,初始化后一旦开始就无法停下是怎么回事

    在使用cc2642芯片中,使用它的看门狗外设,发现它初始化后一旦开始就无法停下。1.如何在open之后,再停下看门狗?2.看门狗设置的时间为1s,实际的时间是它的2倍,请问下这是怎么回事
    发表于 05-30 07:10

    在开发中发现选中external protection后电机转速高了就保护,不选的话电机工作正常这是怎么回事

    各位朋友,在开发中发现选中external protection后电机转速高了就保护,不选的话电机工作正常这是怎么回事
    发表于 04-19 08:12

    STM32F031K6T7烧录电机软件,电机有时能起动,有时无法起动是怎么回事

    本人最近遇到一个问题。电机MCU使用STM32F031K6T7。拿一块2个多月前已经烧录了hex文件的板做测试,功能完全正常。现在用ST_LINK将同一个hex文件再烧录一次到板上,发现板功能不正常了。出现电机有时能起动,有时
    发表于 04-15 06:48

    STM32L431出现LSE CSS后RTC的ALARM无法进入中断是怎么回事啊?

    STM32L431的RTC配置使用LSE时钟,配置ALARMA中断,可以正常进入中断,但是出现LSE CSS后重新配置RTC使用LSI做为系统时钟,但配置后RTC的ALARMA无法进入中断,这是
    发表于 04-08 06:58

    TLE9854 printf函数无法输出是怎么回事

    ttywrch(int ch) { stdout_putchar(ch); } 我把sint32 stdout_putchar(sint32 Char)注释,改为 int fputc(int ch, FILE *f),printf可以用,这是怎么回事,是哪里我没配置吗
    发表于 02-02 16:05

    GD32 MCU进入低功耗模式导致无法再进行程序下载怎么办?

    很多朋友在调试GD32 MCU的低功耗模式时会遇到一个问题:程序中让MCU进入了Sleep、Deepsleep或者Standby模式,之后MCU无法再下载程序了。
    的头像 发表于 01-12 09:41 3236次阅读
    GD32 <b class='flag-5'>MCU</b>进入低功耗模式<b class='flag-5'>导致</b><b class='flag-5'>无法</b>再进行程序下载怎么办?