新闻  |   论坛  |   博客  |   在线研讨会
吹牛必备常识之——“华为P10闪存门”中的UFS和eMMC究竟是啥?
左小木 | 2017-05-11 13:43:00    阅读:33220   发布文章

  上个月闹得沸沸扬扬的华为P10闪存门可谓是赚足了广大网友的关注,那段时间的各大门户网站的头版头条几乎都成了华为P10的后花园,信息热度甚至都超过了华为P10在世界移动大会上的首次发布,爆炸半径绝对可观。

  华为P10“闪存门”其实就是一些消费者在购买P10手机后,经过测试软件发现华为P10系列手机闪存速度出现了明显的差异。用户测试结果显示,有部分手机的闪存速度约为200MB/秒,而根据网上公布的评测参数来看,实际速度则应该能够达到800MB/秒左右。而最终测试的结论就是华为P10的闪存存在UFS和eMMC混用的问题。

      说了这么多的废话,终于引出了我们今天要谈的两个主角——UFS和eMMC。

  可能大家对这两个主角的认识并不多,只是从这一事件中了解到:UFS和eMMC是两种闪存标准,而在速度上,UFS>eMMC。如果真是如此的话,当你的朋友们在谈论什么内存、闪存、速率和封装的时候,你也就只能频频点头,这样就不好了。所以,小编在这里有义务为大家普及一下这些吹牛常识。

闪存老祖宗——FFS

  谈到闪存的话,我们还是很有必要提一下它们的老祖宗——FFS。FFS,即Flash file system,中文名称是闪存文件系统,是一种为了在闪存设备上存储数据而设计的文件系统。电脑上用到的大部分文件系统都是针对碟盘存储设备而设计的,应用到闪存上并不适合。一般的文件系统可以通过闪存转换层写入闪存,但是这极大地影响了数据的写入效率。而随着嵌入式逐渐成为电子产品的重要发展方向,移动设备越来越得到大众的青睐,设计闪存文件系统就越来越有必要了。

  设计闪存文件系统的基本概念是,当存储数据需要更新时,文件系统将会把新的复本写入一个新的闪存区块,将文件指针重新指向,并在闲置时将原有的区块信息抺除。例如JFFS2与YAFFS的设计。当然,如果你不知道什么是JFFS2、YAFFS,也没关系,因为这并不会影响你理解UFS和eMMC。

  在Linux上实现的闪存转换层,称为MTD。MTD全称是Memory Technology Device,即内存技术设备,是一个虚拟设备驱动层。它可以提供标准API给操作Raw Flash的device driver。听起来是不是有点晕呀,其实简单来讲,MTD就是一个能让闪存设备看起来像是一种区块设备的硬件的抽象层,因此,能够将既有的文件系统(如FAT、Ext、XFS等)直接应用在闪存上。具体关系如图1所示。

图1 VFS(virtual File System)系统分类

  从图1中可以看到:MTD device(也可以理解为Flash device)和普通的Block device是有区别的,具体区别是:

  普通的BLD(Block device)只有两种操作:读(read)和写(write);而MTD Device有三种操作:读(read)、写(write)和擦除(erase)。

  如果你觉得细节不重要,那么,简单来讲,也就一句话:FFS是一种为了在闪存设备上存储数据而设计的文件系统,可以说是现在那些牛逼闪存的老祖宗。

闪存和内存

  讲完老祖宗,如果要完全弄清楚UFS和eMMC,我们还需要区分另外两个概念——内存和闪存。

  内存(Memory)即随机存储器(RAM),它可以随时读写,而且速度很快,通常用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后,CPU再将结果传送出来。因此,可以说它是电子设备与CPU进行沟通的桥梁。但是这种存储器是易失性存储器,即在断电时会丢失其存储内容,故主要用于存储短时间使用的程序。如果用在手机上的话,也就是我们通常说的手机运行内存(RAM)。

  闪存(Flash Memory)是一种非易失性存储器,即断电数据也不会丢失存储内容。闪存不像RAM那样以字节为单位改写数据,而是以区块为单位,区块大小一般为256KB到20MB。通常来说,它相当于电脑中的硬盘,如果用在手机上的话,也就是我们通常说的手机内存(ROM)。当然,如果是用到手机上的话,存储速度就一定要快,而体积则必须要小。

  了解了这些,接下来我们就可以解决一下今天要讲的问题了——UFS和eMMC到底有什么区别,是否真如华为发言人说的那样——“差别不大”呢?

eMMC和UFS

  eMMC,全称embedded Multi Media Card,即嵌入式多媒体存储卡。采用并行数据传输技术,主控和存储单元之间拥有8个数据通道,它们可以同步工作,工作模式为半双工,每个通道允许读写传输,但是同一时间只能读或写。eMMC是由MMC协会所订立的主要针对手机或平板电脑等便携电子产品的内嵌式存储器的标准规格,eMMC的一个明显优势是在封装中集成了一个控制器,它提供标准接口并管理闪存,使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间,这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说同样重要。因而,在其刚问世时,即得到了广大厂商的支持。简单来说,就是在原有内置存储器的基础上加了一个控制芯片,再以统一的方式封装,并预留一个标准接口,以便手机客户拿来直接使用。

  目前大多数主流中端手机采用的都是eMMC5.1的闪存,其理论带宽为600M/s。顺序读取速度为250M/s,顺序写入速度为125M/s。2015年之前几乎所有的主流智能手机和平板电脑采用的都是这种存储标准。

  UFS,全称Universal Flash Storage,即通用闪存存储,采用串行数据传输技术,只有两个数据通道(但速率高于eMMC),工作模式为全双工模式,同一条通道允许同时进行读写传输,传输效率得到提高。UFS是UNIX文件系统的简称,它来源于4.3Tahoe发行版中提供的BSD Fat Fast File System(FFS)系统,属于FFS的演化版本,其使用的是PC平台上常见的SCSI结构模型并支持对应的SCSI指令集。

  UFS前期版本并未得到很大的关注,直到2013年9月发布的新一代闪存存储标准UFS 2.0才开始得到大众的追捧,UFS 2.0闪存读写速度可以达到5.8Gbps(约为750MB/s),已经远超于eMMC(是eMMC的两倍),而最新版本的UFS 2.1的数据读取速度更是高达11.6Gbps(约为1.5GB/s),是UFS 2.0的两倍,具体传输速度对比参见图2。

图2 eMMC与UFS传输速度对比

  因此,不论是数据传输技术,还是工作模式,UFS都全面领先于eMMC,读写性能也直逼PC的SSD,未来有望打破PC与手机相比在读写性能上的优势,eMMC、UFS和SSD的当下关系可用图3表示。

 

图3 eMMC、UFS和SSD的当下关系

  但是在价格和生产方面,UFS2.1的门槛仍然略高。就价格方面,同等容量的UFS2.1闪存是eMMC5,1的两倍左右,这也是现在UFS 2.1也只是在旗舰手机开始普及的一个主要原因;而在供货方面,目前可以生产eMMC5.1闪存的厂商很多,而能够生产UFS2.1却不多,目前市场上主流的是三星、东芝和SK海力士,美光的UFS2.1闪存产品据称也已经进入量产阶段,但是目前尚未公布具体信息。这就可以解释为什么现在大部分厂商的UFS2.1闪存仍处于缺货状态的主要原因。

  说了这么多,以免绕晕大家,小编还是为大家简单划一下重点吧,具体见表1所示。

 表1 eMMC和UFS各项数据对比

      从表中可以看出,有两点是前文没有提到的,第一点就是多线程/数据队列/分区引导,由于这些功能大家都比较熟悉,不熟悉的人也知道,支持这些功能最明显的一个好处就是——快。第二个是满载功耗,其实UFS2.1的满载功耗是比eMMC的要更高的,但是由于UFS2.1能更快地完成操作,从而更早地转换到待机状态,因而就整体功耗而言,就要看具体使用情况了。

  如今的手机eMMC5.1闪存读写性能已经明显处于劣势,而且UFS2.1芯片不仅传输速度快,而且已经是当下及未来旗舰手机闪存的理想搭配,预计今年的旗舰机型将会大量使用UFS2.1,当然缺货状态仍会继续。

  由此看来,华为官方称,“差别不大”确实难以令人信服,倒是之后谈到的由于供货出现问题导致“混用”的措辞才是正解。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
网络信息高速发展的当下时代,各种新兴技术不断更新迭代,现在的现在,是否还是你曾经幻想过的未来?我们又该如何书写现在,又将会有怎样的未来。
推荐文章
最近访客