[知乎]老狼:UFS VS NVMe
https://zhuanlan.zhihu.com/p/26652622
最近某手机厂商的闪存门在知乎上被人踢爆,在所谓“爵士水军”和“友商水军”的口水大战中,至少eMMC, UFS等火星名词被广泛的科普了一把。苹果粉也不时掺和进来,NVMe在苹果手机上的应用让这个群体平添了一份“高冷”,安卓的小伙伴们被鄙视的都不敢回嘴了!
本着看热闹不怕事大的原则,我这个低端山寨手机拥趸决定以一个吸引眼球的故事开始本系列:到底UFS 2.1和NVMe谁性能好,谁能“代表社会先进生产力”呢?
UFS VS NVMe
UFS是为了替代eMMC而生,主要面向手机等嵌入式场景。NVMe是目标是取代SATA SSD硬盘接口,主要应用在计算机平台。两者似乎没有必要也没有机会正面PK,但是苹果就是这么任性,偏偏要在手机上使用NVMe。这就像一场荒(YOU)诞(QU)的穿越剧,关公(NVMe)和秦琼(UFS)被强行穿越到我们眼前PK,而且被要求fight to death!作为资深吃瓜群众,在他们开打之前,我先来介绍下两位选手的个人情况。

秦琼:UFS
UFS(Universal Flash Storage)目标是取代eMMC。在2008年,JEDEC就开始为并行的eMMC寻找串行方案。到了2012年,UFS 1.0诞生了,知道今天已经是2.1版了。UFS相较eMMC最大的不同是并行信号改为了更加先进的串行信号,从而可以迅速提高频率,同时半双工改为全双工。如图:

关公:NVMe
NVMe(NVM Express)目标是替换掉SATA接口。早在2009年Intel就开始着手寻找SATA的替代方案,在2011年有了1.0。最新的版本是1.2.1。NVMe实际上是一种通讯协议,在通讯协议里是应用层,它使用PCIe协议作为数据和链路层。如下:

NVMe是为SSD而生。在此之前SSD都用SATA接口。有人会好奇SATA也是串行接口,为啥还要创造个新的接口。SATA接口采用AHCI规范,其已经成为制约SSD速度的瓶颈。AHCI只有1个命令队列,队列深度32;而NVMe可以有65535个队列,每个队列都可以深达65536个命令。NVMe也充分使用了MSI的2048个中断向量优势,延迟大大减小。
战力分析
介绍完了两位猛将,我们来看看他们的装备。因为他们都基于NAND Flash技术,我们就从他们的区别最明显的部分比起。
1。坐骑
秦琼坐下黄骠马,入选唐朝七骏图。关公胯下赤兔马,人中龙凤,马中赤兔。都是大名顶顶。坐骑是速度的保证,要不关二爷也做不到温酒斩华雄。协议的带宽也是速度的象征,UFS采用两条lane,2.1的最大带宽为11.6Gbps,约为1200MB/s,如下图:

NVMe链路层采用PCIe,目前PCIe是3.0,一般采用4条lane,如果你看过前面我们PCIe的介绍(传送门:深入PCI与PCIe之一:硬件篇 - 知乎专栏),我们就知道带宽是4000MB/s,如下图:

就算2个lane,也是2000MB/s,>1200MB/s。看来黄骠马跑不过赤兔马啊。有人说不公平,UFS 3.0要来了,速度会加倍,如下图:

可是PCIe 4.0也会在今年面世,相信最需要带宽的NVMe会立刻采用,PCIe 4.0 * 4 lane的带宽将达到恐怖的8000MB/s,两个lane也有4000MB/s。完全是碾压式的。
2。武器
秦琼手拿两根四棱金装熟铜锏,关羽手持青龙偃月刀。兵器的好坏也决定PK的强弱。UFS采用UCS命令集,它是SCSI命令的一个子集。NVMe采用为NAND flash量身定制的精简ATA命令集,大大减少命令的复杂度,恐怖的命令队列数目和深度又保证了4K小文件的迅速读写。两者相比UFS命令集和理论处理能力上又大大落于下风。看来还是青龙偃月刀厉害啊。
实战
闲话休提,是骡子是马拉出来溜溜!PK是打出来的,不是说出来的。我们来看看实际的benchmark:
某厂UFS 2.1:

最高的我们算作800MB/s。
苹果iphone 6s plus 128GB版本:
benchmark网站测试结果。
顺序读:1840MB/s。顺序写:279MB/s
三星950 pro 512GB M.2 NVMe
最后,我们欣赏一下三星的性能王:

结语
看来关二爷勇冠三军啊,是不是关二爷一定会越来越好,步入人生巅峰呢?造化弄人,历史上秦琼秦叔宝辅佐李唐立国,配享凌烟阁,富贵而终,甚至变成门神。而我们公认勇武的关羽关二爷却败走麦城,掉了脑袋,只能在关帝庙里吸食些香火。市场欢迎的技术才是好技术,而谁又能真正准确预测市场呢?
滚滚长江东逝水,浪花淘尽英雄。
是非成败转头空。
青山依旧在,几度夕阳红。
白发渔樵江渚上,惯看秋月春风。
一壶浊酒喜相逢。
古今多少事,都付笑谈中。
[知乎]老狼:UFS VS NVMe的更多相关文章
- [知乎]老狼:深入PCI与PCIe之二:软件篇
深入PCI与PCIe之二:软件篇 https://zhuanlan.zhihu.com/p/26244141 我们前一篇文章(深入PCI与PCIe之一:硬件篇 - 知乎专栏)介绍了PCI和PCIe的硬 ...
- [转帖] 知乎: 为什么品牌机器里面的VTX都是关闭的..
为何品牌机BIOS中的硬件虚拟化都是默认关闭的? 知乎老狼原创: https://www.zhihu.com/question/40381254/answer/499617881 谢邀.先说结论, ...
- [转帖]老狼:你知道哪些关于 Windows 10 的骚操作?
作者:老狼链接:https://www.zhihu.com/question/265781599/answer/579939418来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 数据读取速度达1.5G/s,UFS 2.1存储技术曝光
目前最快的是苹果NVME,当然UFS2.1也不差 iPhone6s与iPhone6s Plus在硬件的规格上有了很大的提升,但是它们身上的变化远没有苹果在发布会上所提到的A9处理器.1200万摄像头以 ...
- NVME SSD vs SATA SSD(转)
NVMe是个啥?未来SSD主流标准早知 关注固态硬盘的朋友应该对于这个词汇并不陌生,特别是今年NVMe也频繁出现在各大媒体文章中,随着高端SSD市场逐渐从SATA专项PCI-E时,以前的AHCI标准已 ...
- [SPDK/NVMe存储技术分析]012 - 用户态ibv_post_send()源码分析
OFA定义了一组标准的Verbs,并提供了一个标准库libibvers.在用户态实现NVMe over RDMA的Host(i.e. Initiator)和Target, 少不了要跟OFA定义的Ver ...
- 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- Python 爬虫模拟登陆知乎
在之前写过一篇使用python爬虫爬取电影天堂资源的博客,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...
- 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
随机推荐
- Luogu5110 块速递推
题面 题解 线性常系数齐次递推sb板子题 $a_n=233a_{n-1}+666a_{n-2}$的特征方程为 $$ x^2=233x+666 \\ x^2-233x+666=0 \\ x_1=\fra ...
- springboot之rabbitmq
一.RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的.所有 ...
- 【Python学习笔记之三】lambda表达式用法小结
除了def语句之外,Python还提供了一种生成函数对象的表达式形式.由于它与LISP语言中的一个工具很相似,所以称为lambda.就像def一样,这个表达式创建了一个之后能够调用的函数,但是它返回了 ...
- linux下查看端口是否被占用以及查看所有端口
1.查看服务器端口是否被占用 >lsof -i:8081 2.查看服务器所有端口 >netstat -ntlp 3.查看服务器是否开放某端口 tcp端口:>netstat -ntp ...
- flask中的简单的前端写入
那么flask这个框架是web开发,那么肯定离不开前端的一些代码,那么python用的web开发框架 开发所用的前端模板就是jinja2模板.相对于jinja1比起来性能做到了很大的提升,那么Vue一 ...
- python属性访问
1.python属性访问魔法方法: >>> class C: def __getattribute__(self,name): print("getattribute&qu ...
- 使用TCP在同一台电脑上可以建立连接,在两台电脑上却连接失败的原因分析
最近在用unity做联机游戏,在网络方面费了不少劲,总是在代码没问题的时候出一些莫名奇妙的BUG,不过后来都决定了.如果感觉代码没问题,八成就是防火墙的问题. 用unity发布后的游戏,如果涉及网络, ...
- 使用proxyee-down解决百度云下载限速问题
1.在下面页面安装HTTP下载器 https://github.com/proxyee-down-org/proxyee-down#%E4%B8%8B%E8%BD%BD 2.安装switchy插件 h ...
- 6.把建模工具导出的dea文件导入到three.js程序中
1.使用Three.js渲染导出的DAE 在Three.js中使用Collada(即.dae)文件的话,首先得要用到 ColladaLoader.js. 但是这个ColladaLoader.js并不包 ...
- 使用C#采集Shibor数据到Excel
对Shibor的变化一直以来比较关注,正好最近学习了对html数据处理的一些知识,就打算拿来采集一些我需要的Shibor数据. 使用到的库 HttpAgilityPack 一个非常不错的html解析工 ...