一. 背景介绍
最近有两台产品在研发自测时,出现了TF卡程序烧录不成功或者烧录成功后无法重启的BUG;修改程序后,可以烧录成功,且可以正常上电重启。但与正常样机相比,有问题的样机烧录时间大致为14min,正常的样机只需6min。
最终定位到是A53核心板的问题。从核心板的信息来看,出问题的核心板是2019年或者2020年的。由于研发样机使用频繁,程序烧录、升级、处理信息保存以及删除都会加快eMMC的损耗,因此怀疑是eMMC使用寿命快到了,内部坏块增多,性能下降导致。
两块问题核心板均已寄给了供应商分析,目前的情况是:核心板1,在供应商复现问题后,直接更换了eMMC就恢复了正常;核心板2,供应商修改烧录脚本,去除多余烧录条件后,也恢复正常,但我司采用的烧录脚本是否只是单纯的软件逻辑问题,还是与eMMC内部硬件情况相关联,仍在进一步分析中。另外核心板2,通过指令查询,发现使用寿命已近90%,因此仍担忧产品的使用寿命问题,有必要评估一下在自家产品上eMMC的使用寿命。
二. 寿命分析
1. 相关介绍
-
eMMC简介
Flash分为两种规格:NOR Flash和NAND Flash,两者均为非易失性闪存模块。
NAND Flash按内部存储密度又分为SLC、MLC、TLC和QLC。其中SLC的每个Cell单元存储1bit信息,MLC存储2bit信息,TLC 存储3bit信息,QLC则存储4bit信息。SLC、MLC、TLC和QLC按照排列顺序,容量依次变大,但读写性能和可靠性都变差,P/E寿命变短。
如图1所示为eMMC的整体架构,eMMC内部是把NAND Flash芯片(Flash内存阵列)、存储控制器封装在一起。存储控制器负责管理内存,并且提供标准接口,使得eMMC能够自动调整主机与从机的工作方式。
![](https://i-blog.csdnimg.cn/blog_migrate/5d4560bfa1fd66d820d10c4c47659519.png)
-
eMMC寿命定义
eMMC的存储控制器,负责存储器的管理工作,包括坏块管理、纠错、循环冗余码校验以及擦写均衡等。eMMC寿命以擦写次数定义。一次擦写定义为所有存储块都轮循擦写一次。由于eMMC内部自带擦写均衡管理,因此基本上eMMC的寿命就是指所有存储块轮循擦写的次数。
通常SLC的P/E寿命在1万次~10万次之间,MLC寿命在3000~5000次不等,TLC寿命为1000~3000次,QLC寿命300~500次不等(请注意:目前能查询到的擦写寿命信息并不统一)。
2. 寿命评估
A53核心板采用的eMMC为MICRON的MTFC8GAKAJCN-4MIT,规格书并没有给出其擦写寿命,但其属于MLC型eMMC,可以按3000次擦写进行评估。目前从软件同事那了解到,程序占用空间大致为1.8GB以内,单条历史记录2.5MB。
在实际客户使用中,程序重新烧录的机会极少,U盘程序升级涉及到的程序量也只有几十MB,可以认为程序占用的1.8GB空间是固定的,因此eMMC可允许擦写总量为Ez=(8G-1.8G)*3000=18600GB。粗略评估可擦写历史记录条数为Ns=18600GB/2.5MB=7618560,再假设每天1000条历史记录,则一年365000条历史记录。A53核心板按照eMMC进行寿命评估,Ny=7618560/365000=20.87年,可满足产品的使用寿命要求。
当然,以上只是粗略评估,实际上,eMMC存储器更新操作要先擦除后写入,且擦除时又不能按字节来执行,只能把整个块擦除。现在的eMMC存储设备基本上是采用较大的擦除块来执行擦除操作,带来的问题是:在更新操作中,小数据的更新会造成整个擦除块的擦除和更新,这样就造成了大量无用的更新。
实际情况更复杂,包括eMMC文件系统的运行机制、产品处理数据的更新、以及配置参数的变更,都会大大影响设备的使用寿命,难以精准评估影响。但eMMC芯片内部提供了已擦写次数的记录。如果想比较准确的获取寿命评估,可以读取返厂设备的eMMC内部寄存器数据后再进行统计。
三. 结论
A53核心板上采用的eMMC是满足产品使用寿命要求的。