和ufs_高端智能机UFS与EMMC相比,速率有何优势?用户体验如何?

目前各大手机中高端机器正在从EMMC向UFS转变,与EMMC相比较,UFS的速率更快,对用户体验的提升也更加明显。

那么,什么是UFS呢?UFS即所谓的Universal Flash Storage,是手机存储的未来,为什么这样说呢,一句话,因为它很快!给出下表的数据大家感受一下:

d026e0de77e1652349d5a33df6e99a43.png

UFS最新标准是UFS3.0,于2018年1月30日发布。它最大带宽可以达到2163MB/s!4倍SATA3.0的速度 (600MB/s),超过PCIe3.0x2的速度(2GB/s单向速度)。

不过,目前市面上的UFS产品还是UFS2.0/2.1,其最大带宽1081MB/s,也是秒杀一般的SSD。UFS协议是JEDEC(www.jedec.org)组织制定的,三星、海力士、东芝等公司力捧。下面是UFS协议的发展历程:

4a1a94682c6b226ecd080d6a47fc186d.png

我们可以看到,UFS协议一直在大踏步的朝着更高更快的目标前进,将EMMC远远的抛在后面。那么UFS为什么呢跑那么快呢?

首先,它在数据信号传输上,使用的是差分串行传输(串行信号与并行信号在速率上是压倒性的优势)。这是UFS快的基础。所有的高速传输总线,如SATA,PCIe,SAS,都是串行差分信号。串行,可以使用更快的时钟(时钟信息可以嵌在数据流中);

差分信号,即用两根信号线上的电平差表示0或者1。与单端信号传输相比,差分信号抗干扰能力强,能提供更宽的带宽(跑得更快)。打个比方,假设用两个信号线上电平差表示0和1,具体来讲,差值大于0,表示1,差值小于0,表示0。如果传输过程中存在干扰,两个线上加了近乎同样大小的干扰电平,两者相减,差值几乎不变,你大爷还是你大爷。但对单端信号传输来说,就很容易受干扰,比如0-1V表示0,1-3V表示1,一个本来是0.8V的电压,加入干扰,变成1.5V,相当于0变成1,数据就出错了,你大妈已经不是你大妈了。抗干扰能力强,因而可以用更快的速度进行数据传输,从而能提供更宽的带宽了。

UFS的前辈是eMMC,使用的是并行数据传输。并行最大的问题是速度上不去,因为一旦时钟上去,干扰就变大,信号完整性无法保证。而且对目前的日益复杂的系统而言,UFS的单通道只有2根走线,而EMMC却需要8根走线,优势也是很显然的。

其次,UFS和PCIe一样,支持多通道数据传输,目前最多支持两个通道。多通道可以让UFS在成本、功耗和性能之间做取舍(通道一般都是可配置的)。

还有,它是全双工工作模式,就是读写可以并行。它的前辈eMMC是半双工,读写不能同时进行。

dbeb0d1ef23ea22b49b1c204e7fe69aa.png

要让UFS速度快,这些基础设施是必须的。但要充分利用底层高速数据传输通道,还需要上层数据传输协议配合。就好比我们现在有一条又宽敞又平坦的高速公路,我们需要一辆高速的汽车行驶在上面。你如果让一辆拖拉机在上面跑,高速公路算是白修了。

UFS协议上层,怎样来充分发挥底层速度快的优势呢?

UFS是支持命令队列的(即所谓的CMDQ,CMDQ优化命令后对速率的提升非常明显)。

CMDQ即主机一下可以发很多个命令下去,然后UFS设备支持并行和乱序执行,谁先完成谁先返回状态。这种命令处理方式叫做异步命令处理。

EMMC,是不支持命令队列的,命令一个一个执行,或者一包一包(每个包里面含有若干个命令)执行,前面命令没有执行完成,后面的命令是不能发下去的。这种命令处理方式叫做同步命令处理(对EMMC来说,可以使用SW CMDQ或者平台端的HW CMDQ,对速率的提升还是非常明显的)。

我们来比较一下“全双工+异步命令处理”和“半双工+同步命令处理”两者命令处理方式和命令执行效率。

半双工+同步

主机发了一个写命令W1给设备,然后主机把数据写到设备;由于是同步传输模式,命令处理是一个一个处理的,所以在发读命令R2之前,必须等前一个写命令W1完成;同样,在发送写命令W3之前,必须等R2命令完成。

dd30cc45e26947da01c156a07175a23a.png

全双工+异步

d17735fe0177df223fbf200ce15160c4.png

由于支持命令队列,主机一下可以发若干个命令给设备,如上图,主机一下发了一个写命令W1和读命令R2给设备。设备可以并行处理这两个命令,由于协议支持全双工操作,主机传输写命令W1的数据给设备的同时,设备也可以把读命令R2的数据返回给主机。后面命令R3,R4,W5…的处理方式类似。

再形象一点,我们以搬运货物的例子来比较一下eMMC和UFS命令执行方式:

b831e83f4e47c4d5ee6596ec3a293f4e.png

eMMC最新标准是2015年发布的eMMC5.1,最高速度是400MB/s。目前通常主流的EMMC的最大顺序读写速率也就200MB/s左右,JEDEC已经有了UFS,不确定会不会再发布新的eMMC标准。毕竟,并行传输的eMMC由于受限于物理信号,速度想要有个质的飞跃是不太现实。

那么EMMC和UFS在速率上的有没有量化的对比呢,还是用最经典的测速工具adriod bench测试出来的速率给大家对比一下吧,很显然,由于物理层面的限制,EMMC无论如何优化,也是不可能达到UFS的读写速率的。

5df718bb3e4c5c644cc48e553d82b685.png

如果说eMMC是手机中的HDD,那么UFS就是手机中的SSD。UFS取代eMMC成为主流手机存储协议,这是毫无疑问的。不过,UFS一统天下的道路上还有一个拦路虎,那就是NVMe。

有人说,NVMe不是SSD的协议标准吗?没错,不过,我要提醒大家的是,苹果现在手机中存储协议是NVMe而不是UFS。在短期,UFS和NVMe会分别在安卓和苹果手机中存在。长期来说,UFS和NVMe是二分天下,还是合二为一,我们只能拭目以待了。

欢迎关注工程师小何,如果您觉得本文有点小用,欢迎留言交流。如果您喜欢本文章,可以点击关注。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值