年年都有锂电池爆炸的案例,但因为三星Note7,大家补充了很多电池相关的知识。而最近某国内厂商的“闪存门”,也带动了一大波关于“闪存类型和文件系统”的科普,但看到UFS 2.0/2.1和eMMC,F2FS和EXT4等名词时,估计很多读者都会懵逼。趁着这个机会,为大家带来一些简单的小科普。
说到手机性能,大家第一时间想到的都是CPU和GPU性能,但闪存也是直接影响应用开启和游戏载入速度的元件。当中前者主要受随机读/写性能影响,后者主要受连续读/写性能影响。在2017年,对随机和顺序读写性能影响最大的因素之一,刚好是本篇科普的主角——文件系统和闪存类型。而这次闪存门,主要针对的是UFS和eMMC等闪存类型。
现在电脑使用的SSD、安卓手机上的eMMC、UFS,采用的都是Flash闪存技术,它们的主要区别在于控制器、接口以及闪存规格。从eMMC到UFS,主要是倍数级的速度提升,而从UFS 2.0到UFS 2.1的提升重点不在速度,而增加了设备健康状态描述和预防性维护等更先进的功能支持。只是东芝的THGA系列UFS 2.1产品上,还对随机读写性能进行了提升。
这几种闪存具体的历史缘由和技术差别,以及再往下的MLC、TLC颗粒等内容,下次有机会再另外成文,这里先不展开。但这里要注意的是,需要提前的电路设计才能让机器同时兼容UFS和eMMC,远不是简单替换闪存芯片的问题。这次的闪存门,很可能机器是产品设计之初,就已经做了后期更换闪存的准备了。
针对这次的闪存风波,主要集中在上面说的闪存规格上。最早的疑问也从“是eMMC,还是UFS”,慢慢延伸到“是UFS 2.0,还是UFS 2.1”。爱搞机在这里汇总了3种辨别的方法:
通过AndroBench等闪存速度测试软件,对机器的读写速度进行测试,间接性的闪存规格判定。最高速度在300MB/s以下的大几率都是eMMC,在500MB/s附近则可能是UFS 2.0,在700MB/s以上则较大可能是UFS 2.1了。
图片来源@魔法师蛋小丁
在终端模拟器(同类型软件亦可)中输入ls /proc/fs/*,如上图,在/proc/fs/f2fs信息下,如果是sd为前缀,其闪存为UFS,如果开头为mmcblk,则为eMMC。
小米6截图
如果想查看闪存类型,最直接的方法肯定是拆机直接看芯片的型号。而免拆机的最快方法,是使用终端模拟器(同类型应用也可以),输入cat /proc/scsi/scsi,在Vendor中就有标明闪存的型号(如上图)。这个方法无需root权限,但保不准以后厂商会特意屏蔽甚至作假,所以建议早查早截图。
大家可以对比网友汇总的表格,查看自己的华为/荣耀系列机型使用的闪存:
东芝和三星的UFS2.0/2.1闪存型号概略表(图源自知乎网友@墨韵GS,侵权即删)
而我们手上的V9(截图在下面的第二部分),用的是三星KLUDG8J1EB-B0B1。这个闪存型号在截稿时还未录入三星电子的官网。但爱搞机从三星内部人员消息得知,同系列的KLUCG4J1EB-B0B1是64G的UFS 2.1,这个KLUDG8J1EB-B0B1不出意味应该就是UFS 2.1了。
东芝eMMC产品型号表
三星eMMC产品型号表
6台旗舰的查询结果
256G版的小米MIX,UFS 2.0闪存(双通道),采用的是EXT4文件系统
64G版的华为P10,UFS 2.0闪存(双通道),采用F2FS文件系统
128G版的一加3T,UFS 2.0闪存(单通道),采用F2FS文件系统
“文件系统”是存储和组织数据的方法,可以笼统理解为文件存放的“格式”。在windows平台大家比较常见的是FAT16/32、NTFS,在Linux平台的文件系统类型就很多了,EXT2、EXT3、EXT4、NFS、SMB都有。而现在安卓阵营普遍使用的文件系统是EXT4,正在有向F2FS转变的趋势。
F2FS(Flash Friendly File System,直译为闪存友好型文件系统)最早是三星电子的金载极设计给Linux内核的系统使用的,其具体提升在优化引索速度,提升小文件传输速度,大幅提升随机读写性能,但现在有空间占用稍大和轻微的兼容性问题。
伴随着该技术的工程师从三星跳槽到摩托罗拉,最后跳到了华为,这个技术也先后在Moto和华为/荣耀的机型上大规模使用。最早在2013年的Moto X上,已经使用了F2FS文件系统(当年的moto确实很有前瞻性)。但比较特殊的是,三星手机的官方系统,反而还在使用传统的EXT4文件系统,而一加3T的官方系统已经在用F2FS了。
比起厂家,第三方开发者就要热心很多了,2014年已经有XDA的玩家把F2FS文件系统用在索尼Xperia Z1的第三方内核上了,CM13以上的系统和很多第三方ROM都已经在用F2FS了。
F2FS作为一个软件技术,它最感人的地方在于,它不但可以用在UFS上,也可以用在性能孱弱、已经“过气”的eMMC上,大幅提升随机读写性能,老旧机型也能因此受益。想体验新文件系统的老机型用户,可以通过TWRP recovery进行手动转换。大家可以在终端模拟器中通过mount的命令查看手机使用的文件系统。
结果汇总
这里6部机型中,最新的三星S8+和小米6确认是采用了UFS 2.1闪存。年纪“最老”的一加3T,是唯一采用HS-G3单通道闪存的产品。但注意,这里的华为P10、荣耀V9和一加3T都使用了F2FS文件系统(从三星内部人员消息得知,同系列的KLUCG4J1EB-B0B1是64G的UFS 2.1,KLUDG8J1EB-B0B1很可能就是UFS 2.1)。
虽然F2FS文件系统会有一定的加成,但在顺序读/写测试,特别是持续写入性能,依旧是和闪存类型与容量直接挂钩的。而在随机读取,特别是随机写入上,F2FS带来的提升简直就是压倒性的(可以套用调侃:大多数人的努力程度之低,根本用不着拼先天天赋)。当中,虽然荣耀V9和一加3T的闪存容量相同,但前者成绩高了一倍,这里主要原因很可能是闪存单双通道上的先天差别。
一人成文,难免会有疏漏,还有望各位机友的交流和指正,跑分库链接可戳这里。愿天下再也没有抽中eMMC的爱国者。
关注我们的微博@爱搞机
关注我们的微信公众号:爱搞机(playphone)
当然,也关注我们的哔哩哔哩账号:爱搞机