你可能不知道的是,售价 3699 元起的小米 10 系列手机,顺序写入速度可能还比不上售价 2699 元的 Redmi K30 Pro。这是因为后者采用的是 UFS 3.1 闪存标准,其自带的 Write Turbo 技术可以把 K30 Pro 的顺序写入速率峰值提高到 750MB/s。

就像红米 Redmi 品牌总经理卢伟冰在这条 微博 中解释的那样,虽然早期的 UFS 3.0 速度确实不算快,但今年最新的 UFS 3.0 在引入下放后的 Write Turbo 技术后,速率比起早期的 UFS 3.0 其实已经有了较大幅度的提升,「达到了接近 UFS 3.1 的级别」。

从图中可以看到搭载 UFS 3.1 的 K30 Pro 在顺序写入这一项提升明显。来源

换句话说,即便对 UFS 3.0 而言,不同机型的实际读写速率可能也会有着较大的差距。要了解这种差距形成的原因,我们就得从 UFS 3.1 和从它下放而来的 Write Turbo 技术说起。

远不止更大的带宽

UFS 3.0 给我们用户带来了几乎是上一代(UFS 2.0)2.5 倍左右的传输带宽,再配合双通道的优势,使得最大总带宽达到了 2900 MB/s 这样恐怖的数字,完全可以满足各式各样的苛刻的使用需求。

UFS 速度对比(图片来自 Wikipedia)

而今天要介绍的 UFS 3.1 作为 UFS 3.0 的升级版,除了继承了 UFS 3.0 速度以外,还添加了下列额外功能,开头所提到的 Write Turbo 就是其一:

  • DeepSleep
  • Performance Throttling Notification
  • Write Turbo
  • HPB

DeepSleep

我们的手机也有低功耗状态,可以在待机时极大减少能源开销。而这次 UFS 3.1 中的 DeepSleep 就是一种 UFS 的低功耗状态。在设备进入低功耗状态时,UFS 也会跟着主动进入 DeepSleep,减少能源开销。这样手机这类设备在待机时候会消耗的电量会更少了。

Performance Throttling Notification

照字面意思来看,Performance Throttling Notification 就是「性能限制通知」。什么时候需要限制性能?也许我们立马会联想到手机在过热时为了保护内部元器件与电池所做的降频温控措施。

而对于 UFS 闪存来说,较高的温度对于闪存的影响很大,Facebook 实验室的研究表明:高温不仅让闪存的速度下降,也会提高写入数据时的出错率,导致需要反复写入数据,闪存磨损加剧。

通过「性能限制通知」这个功能,当温度升高到不能接受的地步时,UFS 设备可以告知系统该情况,让系统进行智能调配,通过降低速度或者其他手段,更安全可靠地读取和写入数据。

Write Turbo

对于一些硬件玩家来说,Write Turbo 写入加速功能的原理其实并不陌生,正是用到了一项已经在 SSD 固态硬盘用了很长一段时间的 SLC 缓存技术来加速写入速度。

SLC、MLC、TLC 和 QLC 对比(图片来自回形针 PaperClip)

SLC 是一种 NAND 闪存类型,它每个单元只能存储 0 或者 1,也就是 1bit 的数据;后来随着技术的发展,逐渐出现了 MLC(能存储 2bit)、TLC(能存储 3bit)、QLC(能存储 4bit)的闪存。每个单元能存储更多的数据,也能够大幅度降低闪存的价格,但是也会导致读取写入的速度变慢以及 更短的闪存寿命

可能有很多人还是不能理解为什么每个单元能存储更多的数据反而会导致写入性能会下降。

SLC 写入数据时的原理(图片来自回形针 PaperClip)

首先 SLC 闪存写入时,先需要将每个单元的做一次「擦除」,将电子吸出存储单元,让这个单元还原成 1。当我们想要写入 0 的时候,需要在顶层的控制极施加一个电压,让电子吸回存储单元。

而 TLC 闪存写入时,也先需要将每个单元的做一次「擦除」,将电子吸出存储单元,让这个单元还原成 111。当我们想要写入 010 的时候,顶层的控制极要做的操作远比 SLC 复杂很多,才能精准地将表示 010 需要的电子吸入存储单元,来写入 010 这个数据,加上这个过程还是有概率会出现错误的,这样就需要重新写入一次。打个不恰当的例子来说,就是 TLC 的密度高导致电子「路窄不好走」,这也是为什么 TLC 要比 SLC 写入速度慢很多的原因。

聪明的厂商想到一个办法:不如将 UFS 上部分 TLC 单元的 TLC 的电位进行屏蔽,让它模拟成 SLC 来使用,那这样写入速度不就会快很多了?

确实如此,这部分模拟成 SLC 以后能极大幅度地加速写入速度,而这部分模拟成 SLC 的单元就被叫做 SLC 缓存。在写入完成了以后,UFS 会在后台将 SLC 缓存里的数据慢慢挪到 TLC 单元里。

一块因为缓存用完的 SSD

但是缓存大小也是有限制的,当我们写入的数据将缓存全部用掉以后,UFS 只能直接把数据放到 TLC 单元里去,这时候我们看见的写入速度就是真实的写入速度了。不过好在用户在手机上很少需要写入大量数据的时候,所以 Write Turbo 这样的技术理论上既能提高用户体验,又能降低制造成本。

HPB

HPB 功能则旨在让系统读取数据时更快。但在 UFS 3.1 中这是个可选功能。

重定位磁区无时不刻保护着我们数据的安全

任何存储设备存储数据时都是有逻辑位置和物理位置的。在某一块损坏以后,硬盘会会通过备用的磁区进行替换,也就是将备用的磁区通过映射的方法与坏磁区联系起来,当硬盘要写入坏的磁区时会直接跳转到映射的备用磁区上,保证数据写入的安全。读取时也同样是如此。

逻辑位置和物理位置并不一一对应

在发生映射关系以后,数据的逻辑位置并没有发生改变,但是物理位置发生了改变。每次使用时,主控都要通过逻辑位置和物理位置映射表才能找到这样的映射关系,这会大幅拖慢读取时的延迟。

HPB 的主要功能就是让 UFS 的主控可以把数据的逻辑位置和物理位置映射表缓存在手机内存中,这样系统就可以用很短的时间告诉主控,系统分别要哪些物理位置上数据,相比过去系统通过逻辑位置访问数据,延迟会大大降低。 利用 HPB 可以大幅降低随机读取时所需要的延迟,提高性能。

UFS 3.1 带来的好处?

利用 AndroBench 给自己的手机测个速,猜猜这是什么存储芯片?

UFS 3.1 给我们带来的最直观的好处就是,安装软件和启动软件的时候所用到的时间大大减少了。尤其是在大型软件和游戏中的时候感觉更加明显,启动和加载特别快。

通过 UFS 3.1 的 DeepSleep 功能还会让手机在待机的时候更加省电;而性能限制通知功能能让系统调度起来更加游刃有余,在高温环境下使用的时候也会变得更加顺畅。

最后就是 UFS 的成本会更低了。Write Turbo 让厂商大胆放心的使用 TLC 单元甚至 QLC 单元的 NAND 闪存作为存储器;而利用好 HPB 功能还可以减少了存储器闪存的 UFS 主控的成本。这两向加起来,用户就可以用更低的价格买到更大存储量的手机了。

以上就是 UFS 3.1 带来的新特性和能给我们带来的好处,希望它能帮助到你。