今年3月,黑鲨4 Pro手机发布。这款手机当时在宣传点上提到“率先引进了磁盘阵列方案,把PC端的SSD固态硬盘带到手机上来”,或者说“首创”“UFS+SSD磁盘阵列”。手机采用“固态硬盘”这个宣传点乍听还是颇为奇怪的,因为当代移动设备几乎都已经在用“固态存储”了。
我们知道,“固态存储”这个词对应的是很早以前的机械存储;在没有移动机械部件的情况下,只采用电子电路来读写数字信息就可以叫固态存储。NAND型闪存是固态存储中比较常见的一类介质,这也是众所周知的了。从常见设备类型的角度来看,U盘、SD卡,还有手机存储常见的eMMC、UFS都属于固态存储。所以手机采用“固态存储”这件事究竟有什么好奇怪的呢?
在科技发展中,有一些约定俗成的习惯仍然被保留至今。比如我们现在说“硬盘”甚至“磁盘”,大多就是指计算机内部的用于存储用户数据的非易失性存储设备,典型的比如SSD。但实际上SSD已经不再具有“磁”和“盘”的属性,只是我们习惯上还是会这样说。
另一点则在于,SSD全称为固态驱动器(solid-state drive/disk)。SSD这个词现在特指替代了HDD机械硬盘的固态硬盘,且以SATA/PCIe接口的形式连接至计算机设备中。所以SSD并不是固态存储设备的统称,而是固态存储设备形态的其中一种。比如一般的SD卡、U盘,虽然通常也用NAND闪存芯片,但其协议、接口、形态都不同,就不能称为SSD。这其实也可以被认为是某种约定俗成。
从直觉来看,SSD固态硬盘现如今存在的形态应该是上图这样的,至少也得上M.2接口。这么大的东西也能塞进手机中去吗?这是个很有意思的话题,不仅是黑鲨,iPhone在这方面有独特的发言权。本文就谈谈如果手机用上SSD,相比手机存储常见的UFS和eMMC,究竟有何差异?
手机“硬盘”常见的eMMC和UFS
关注手机的同学应该知道,手机内部非易失性存储常见的设备类型应该是eMMC和UFS。了解更深入一些的则可能知道,现在的手机普遍都在用UFS,因为它比eMMC在读写速度上快了很多。比如三星、小米等手机的旗舰型号普遍都用上了UFS 3.1,传说存储读写速度都快到飞起了。
要理解eMMC/UFS也不难,先从eMMC说起。MMC全称为Multi Media Card(多媒体卡),这是一种缘起于1997年的存储卡,MMC卡随着SD卡的普及而没落。但eMMC却辉煌了很久。eMMC就是嵌入式MMC卡,eMMC芯片现在以BGA的方式焊接在主板上。很多低端Android手机、平板,甚至上网本,还能看到eMMC的身影——比如微软Surface Go现在也还在用eMMC。
MMC作为一种开放标准,背后是一家名为JEDEC的组织。eMMC的特点就是成本低,2016年以前,它是几乎智能手机内部存储的绝对主力方案。eMMC 5.1A标准是其最后更新版本。2015年发布的eMMC 5.1达成的顺序读写速度分别是250MB/s和125MB/s。
这个速度显然是不快的,eMMC到后期已经成为制约手机、平板类移动设备整体性能发挥的瓶颈。所以JEDEC一直在找能够接替eMMC的高速串行传输方案。UFS(Universal Flash Storage)就诞生了,比较具有标志性意义的是2013年9月发布的UFS 2.0标准。
UFS相比eMMC有两个比较主要的变化,首先是改用LDVS(低电压差分信号)串行接口,有独立的读和写路径,实现了全双工——也就是读写能同时进行(eMMC用的是并行接口,每次只能往一个方向发数据)。另外,UFS支持CQ(Command Queue,命令队列),可对需要执行的指令做分类,多命令可同时处理,任务顺序可做变更(早期版本的eMMC没有该特性)。
UFS要达成的自然就是数据吞吐的加速,2014年发布的UFS 2.0顺序读写速度就已经达到了350MB/s和150MB/s。2016年高通骁龙835宣布对UFS 2.1提供支持后,中高端手机内部存储也普遍转往UFS。这两年逐渐在高端手机上普及的UFS 3.0顺序读取速度已经做到了2100MB/s,顺序写入和随机读写速度都有了长足的提升。
当年UFS问世之初的宣传点就是顺序读写速度可与SSD媲美,与此同时还能保持eMMC的低功耗。
所以和SSD有什么区别?
如前文所述,无论eMMC、UFS还是SSD,它们在作为设备类型时皆采用固态存储,都是NAND介质。那么手机上的这些标准,和PC上常用的SSD究竟有什么区别?
从大方向来看,移动设备要求的无非就是低功耗和紧凑体积。所以很多PC上的标准在移动领域便不再适用。eMMC/UFS与SSD的关系即是如此——从外观形态、连接方式看来,这两者似乎很难去直接比较。如果一定要谈两者间的区别,集成度、系统复杂度、协议栈等方面都有不同。
比如说从集成度的角度来看,eMMC将NAND闪存与控制器集成到一个封装内,存储管理动作就在内部进行。因为所有组件都集成到了一起,内部控制器负责损耗均衡、纠错等等工作,达成低功耗、小体积的目的。而常见SSD固态硬盘的“主控芯片”一般都是外置的。
从性能层面来看,SSD作为应用于PC或大型计算机的组成部分,对功耗没有那么敏感,所以堆砌更多的NAND芯片、以更多的通道数、更激进的接口规格和协议来实现更快的传输速度。SSD主控的工作方式以多NAND芯片并行来实现加速。另外SSD的控制固件往往还具备了更多的功能。
更早期的eMMC则会简单不少,最初也就是把MMC嵌到主板上。在成本、功耗、体积的考量上,SSD实现比eMMC/UFS更高的性能、吞吐也是应当的。
上面这张图的总结,可能横向对比关系相对混乱,比如不同协议定义的层级、关系之间无法做到一一对应(比如M-PHY和PCIe,并不能成为完全并列的关系,鉴于篇幅本文不再详述)。
不过有一点是一定的,当代计算机上的SSD都走PCIe总线标准(PCIe协议本身定义了下面的事务层、数据链路层和物理层),而且对于NVMe的支持也几乎是标配(NVMe作为指令标准,位于协议栈的上层,如下图)。
可以说PCIe和NVMe的组合,构成了当代计算机SSD与外部通讯的主流方式。大部分发烧友应该也都知道,单从接口来看PCIe 3.0 x4能够达成4000MB/s的理论带宽,如今PCIe 4.0的SSD也开始上线了,理论传输带宽可再翻番。
看完SSD,再来看看手机常见的UFS:从层级结构来看,UFS包含了三层,最上层应用层将SCSI标准作为基准协议(除了精简版的SCSI指令集支持,似乎也有其他选择);中间的传输层负责将协议封装为帧结构;最下面的互联层其实是来自MIPI,数据链路和物理层分别就是MIPI的UniPro和M-PHY。
值得一提的是M-PHY也是移动版PCIe(M-PCIe)的底层物理层。
iPhone 6s其实用过固态硬盘?
从常规意义来看,SSD应用于手机其实是很难成行的,主要包括体积、功耗方面的限制;这就好像手机不能直接插DDR内存条一样。不过黑鲨4 Pro宣称自己用上了SSD,这事儿靠谱吗?
从艾奥科技的拆解来看,黑鲨4 Pro的主板上还真能看到打着群联标志的“BGA SSD”,群联是SSD主控芯片的主要供应商,虽然这枚“SSD”和常规固态硬盘看起来在形态上与我们通常的认知差别甚大。群联在今年3月份似乎也确认了这则消息。这枚SSD与右侧的SK海力士UFS 3.1组成RAID0阵列。这种设计在手机里还真是相当罕见。
有关这款黑鲨手机在存储方面的具体方案,我们恐怕是很难了解其中细节的。不过很多人不知道的是,在此之前就隐约有用SSD的先例,那就是iPhone……
苹果iPhone在存储方案上一直也都算是业界奇葩。早在2010年,就有消息来源提到iPhone 4在用一种名为PPN(Perfect Page New)标准的NAND存储器,而非当时相当普及的eMMC。据说苹果当时的方案可以有效延长存储器的循环寿命——更具体的资料现在已经比较罕见。
而iPhone 6s再次展现了苹果“奇葩”的一面。当年iPhone 6s的存储方案被苹果标注为APPLE SSD AP0128K,跟MacBook上标注的编号还挺类似。从那时起,iPhone的内部存储还真是普遍基于PCIe,只不过因为功耗方面的考量,最底层的物理层换成了MIPI M-PHY。前文已经提到,M-PCIe(PCIe移动版)物理层就是M-PHY。
考虑到一方面PCIe标准下的PHY功耗高,另一方面低功耗状态迁移延迟太大,M-PCIe就把标准PCIe的物理层换成了M-PHY,上层保持不变,也就能够实施更激进的电源管理策略。M-PCIe在吞吐方面自然也会低于一般的PCIe,此前Synopsys在IP宣传中提到,M-PCIe以Gear 1/2/3这种形式来标注信号速率,Gear M的速率就等于PCIe Gen (M-1)的速率。
其实移动平台采用PCIe不稀罕,不过iPhone 6s基于PCIe的存储方案再上层协议是NVMe。在此之前应该不存在移动存储解决方案会用这样的方案,虽然很早之前似乎就有厂商在不遗余力宣传PCIe和NVMe会成为移动存储的未来(PCI-SIG?)。
而且从此前的资料来看,iPhone 6s在NAND存储颗粒部分还用上了SLC/TCL NAND混合解决方案(AnandTech此前基于写入时间的数据深度测试),SLC作为cache存在,写入的数据首先会到SLC cache部分,因为SLC还是比TLC更快的。这是提升性能和效率的一类方案。
iPhone 6s对当时一众竞争对手在顺序读写性能上的碾压,来源:AnandTech
苹果此后历代iPhone都在走这条路,与其他手机都不同。所以iPhone的存储性能算是在相当长的时间内保持着对其他手机的碾压地位,虽然可能其中还有很多细节是我们不了解的。
那我们能不能就此说,iPhone用的是SSD固态硬盘呢?这恐怕取决于SSD如何定义了,与黑鲨4 Pro是否真的采用SSD应该是同类型的问题。只不过PCIe+NVMe这种思路与UFS,其发端就根本不同(UFS就是针对移动设备提出的;而SSD则是针对HDD硬盘的换代设备类型),尤其上层部分NVMe(如命令队列数与深度上的碾压地位)——虽然像手机这样的移动平台能否发挥NVMe的性能优势还是相当存疑,把这类案例算作是在手机里放进SSD,好像也基本符合SSD的设定。
来源:iFixit
高速存储对游戏有帮助吗?
事实上,从今年普遍开推UFS 3.0/3.1的Android手机和最新iPhone 12的存储性能测试对比来看,性能差别已经不像过去那么大了(虽然这种跨平台的对比,可靠性还是相当值得怀疑),而且系统层面还包含更多的影响因素。
去年发布的UFS 3.1规格, 几个主要的更新都能够在当代SSD找到对应的特性。UFS也因此正在功能上向SSD靠拢。比如说SLC cache也是UFS 3.1的更新特性之一,前文也提到iPhone早前就有应用这类特性的传统。
回到黑鲨4 Pro,这款手机在宣传中不仅提到了NVMe SSD,而且提到了将SSD与UFS 3.1构成RAID阵列。据说实测其顺序读取速度接近3000MB/s——已经高于UFS 3.1本身。虽然我们并不清楚其中的实现细节,不过在技术上对性能的进一步追求总是值得鼓励的。这类存储解决方案的投入成本是否真的有价值又是另一个话题了,比如方案占用移动设备内部空间可能造成其他组成部分的妥协等。
另外黑鲨4 Pro作为一款面向游戏爱好者的手机,采用这类提高存储性能的方案对于游戏体验是否有帮助的问题,《SSD固态硬盘对游戏行业的一场革命》一文对此有少许解读。这可能很大程度取决于Android本身的游戏开发生态,是否对高速存储有足够的支持——比如Windows开始推DirectStorage API,或者索尼PS5在开发生态上为高速存储提供了更多的支持。
高速存储本身理论上并不会提升游戏帧率,在如今的Android平台上,黑鲨4 Pro的这类方案最大的价值大概限于提升游戏场景的加载速度(比如进入游戏的速度、进入某个新场景的过渡画面停留时间),体验提升会相对有限。而苹果对自家生态的全面把控,实际上会更有助于高速存储得到更充分的利用,就像索尼PS5作为一个相对封闭的游戏生态那样。
责编:Luffy Liu
- vggggg