EMMC在智能电视机中的应用
   来源:中国科技博览     2021年06月04日 00:42

杨小勇

[摘 要]随着智能电视的普及,智能电视搭载了Android 操作系统,用户在欣赏普通电视内容的同时,可自行安装和卸载各类应用软件,这使得对存储空间的需求越来越大,系统需要存储密度高,写入和擦除速度更快的存储器。本文针对目前的智能电视普遍使用了EMMC存储器,讲解了EMMC的内部构成、数据存储原理以及测试方法等。

[关键词]EMMC SLC MLC

中图分类号:TN949.2 文献标识码:A 文章编号:1009-914X(2016)18-0108-01

一、EMMC的数据存储原理

我们知道三极管具备导通和不导通两种状态,这两种状态可以用来表示数据0和数据1,因此利用三极管作为存储单元的三极管阵列就可作为存储设备。EMMC是采用特殊的浮栅场效应管作为存储单元。

EMMC存储器栅极加电的过程等同于HDD硬盘的数据写入操作,它被称为“Program(编程)”,放电的过程电位恢复,这相当于HDD硬盘的擦除数据,这里称为 “Erase(擦除)”,完整的一次Program / Erase循环就是EMMC的写入循环,从这里也可以看出EMMC要想写入数据就需要恢复默认电位,也就是以“擦除”为前提,这个特性决定了EMMC的数据写入方式。

施加电压会导致浮栅极电位变化,那么施加不同的电压就会有更多的电位变化,NAND闪存单元就可以容纳不同的信号组合,这也就是SLC、MLC以及TLC的区别。

SLC(single-level-cell)是最简单的一种,加电就是1,放电就是0。

MLC (multi-level-cell)就是每个cell单元中有多个信号,通过控制不同的电压来实现的,常见的是2个电信号的,它的信号组合有11,01,00,10四种,也就是可储存的容量提升了。

TLC(Triple-level-cell)每个Cell单元中可容纳的3个信号位,有000,001,010,011,111,110,100,101这8种,容量会更大。

二、常用的SLC与MLC性能对比

1. MLC的读写性能下降

MLC需要更精确的电压控制,program过程所需时间更多,因此写入性能也会大幅下降,理论上只有SLC的1/4;读取数据,特别是随机读取性能也会受影响,因为需要花更多的时间从四种电信号状态中区分所需数据,读取性能只有SLC的1/3。

2. MLC可靠性下降

闪存一次P/E循环只需要击穿一次氧化层,而MLC需要不同的电压多次击穿氧化层,物理损害比SLC要严重得多,与SLC相比,MLC的写入次数会指数级的下降,比如SLC的理论寿命是1万-10万次,而MLC的写入寿命上限就只有1万次,而且随着制程工艺的进步,这个数值还在下降,25nm MLC普遍只有3000-5000次。

3. MLC需要更高的纠错

由于电压分的更细,MLC在读取数据的过程中需要提高敏感度,不然就容易出现读错数据的可能,也就是说MLC出错的几率增大了,纠错要求也必须随之提高,反应在EMMC上就是需要更强的ECC纠错机制。

4. MLC的漏电流、电压边界位移(voltage margin shifting)现象也增加了,MLC的功耗和发热也更高了,这些都是MLC带来的问题。

5. MLC的存储密度高,很好的解决了SLC的成本高和设计空间问题。

EMMC的寿命及改进方案:

因为EMMC写入和擦除数据时的高电压会导致介质(衬底的二氧化硅)的氧化降解,所以P/E循环次数是有限的,不像HDD的GMR(巨磁阻尼)效应那样是永久的,存在次数限制。目前主流25nm工艺下,MLC的P/E循环次数在3000-5000次之间,而最强的是SLC,标称有10万次写入寿命。

EMMC有限的写入循环次数决定了用的越频繁,NAND死得越早,如果不加以控制,那么容易就出现这样的情况:主控频繁向某部分bloc写数据-擦除数据-再写入数据,而NADN其他部分写数据的机会比较少,不平衡的使用方式对EMMC寿命也是一种伤害。

耗损均衡:耗损均衡(wear leveling)技术就是为了保证NAND所有区块的写入-擦除几率是均等的,就是“有难同当”,有活大家一起干,依照不同的状态,可以分为三种,无耗损均衡(no-wear leveling)、动态耗损均衡(Dynamic Wear Leveling)以及静态耗损均衡(Static Wear Leveling)三种 。耗损均衡是一种优化算法,它主要依赖于EMMC主控。

垃圾回收(garbage collection,简称GC)是EMMC恢复性能的另一大功能,这个主要跟厂商所用的主控有关,其意义就跟字面意思一样,通过清理无用的垃圾数据保持EMMC性能如新。

三、Mstar机芯EMMC认证测试

1、用eMMC_mboot_test.bin进行测试。

测试原理如下: 每次写1MB到random的一个地址,在NAND写的过程中(大概需要60~90ms), 通过拉GPIO 直接断电。 3s后,watchdog使我们的板子重新启动,然后根据env中的记录去check 整个memory(除了上次写的1MB外),如果ok,就说明上次掉电写不会破坏pair page。重新init上次的那块1MB。 如此反复5000次循环,测试EMMC擦写寿命及断电写保护功能。 测试程序的使用方法如下:

1) 烧写附件的Mboot;

2) 第一次进Mboot后,在命令行敲如下命令:

setenv static_reliable_testloop_env 0;

saveenv mmc erase //确保erase完成,这样以后测试出错后,会停在命令行;

3)断电重启,自动测试开始。 如果出现以下错误信息,说明失败:

a. this emmc nand not support static reliable write!!!!!!!!!!!! //根本就不支持static reliable write

b. static relibale write error!!!!!!!!!!! //pair page别损坏

c. sleep need long time: error!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //这个板子拉GPIO掉电太慢,不能用来测试

d. emmc device write done //这个板子拉GPIO掉电太慢,不能用来测试 如果测试失败该eMMC则不能用。

2、 eMMC 还需要经过试产和量产验证。

3、 经过以上两点验证都OK的话,才算认证OK。

四、小结

EMMC的出现,解决了智能Android 操作系统对大容量数据存储的需求;并以标准封装接口简化了对存储电路的设计要求;但对于这样的新器件,我们需要对它进行更为详尽的测试,以使它的性能达到系统的设计要求。

参考文献

[1] 《MSD6A918四层板应用说明》

[2] 《5 款实用的硬盘、SSD 固态硬盘、U 盘、储存卡磁盘性能测试工具》

文章 如新 数据