转载:蛋蛋读UFS之一:UFS简介

我们知道,我们电脑由三大件组成:CPU,内存和硬盘。CPU用以计算和控制,内存用以临时存储程序运行时所需的数据(掉电数据丢失),而硬盘用以长久保存数据(掉电数据不丢失)。

我们每天使用的手机,其本质是一个移动的小型计算机,同样由三大件组成:CPU,内存和存储设备。其中的存储设备相当于电脑的硬盘,用以长久保存手机上的数据,比如视频、照片、音乐、系统等数据。

电脑的硬盘有机械硬盘(HDD)和固态硬盘(SSD),前者是机械存储设备,存储介质是磁盘;而后者是电子存储设备,存储介质是闪存。我们不可能在小小的手机中塞入一个机械设备,所以手机上的存储设备只能是电子存储设备,存储介质也都是闪存。

现在是人手一个手机的时代,手机成了人们身体的一部分,一天不带手机,就感觉缺少了什么,吃嘛嘛不香。

因此,人们对手机的要求也越来越高: 速度要快,容量要大,流畅不卡顿…

为了让手机更快,手机厂商使用更快、更多核的CPU,加大系统内存(4GB不够用6GB,6GB不够用8GB),使用更快的存储设备。无论是电脑还是手机,三驾马车(CPU,内存和存储设备)中,跑得最慢的就是存储设备了。CPU和内存的快步向前,促使最慢的存储设备也需要努力跟上,不然再快的CPU和再大容量的内存,你的手机用起来还是让你觉得不爽。

近年来,由于闪存技术的应用和发展,无论是电脑上的硬盘,还是手机中的存储设备,都在变得越来越快。

电脑上,从HDD 到SSD,从SATA SSD到PCIe SSD,硬盘是越来越快;

手机上,从SD卡,到eMMC卡,再到UFS卡,存储卡的速度也是越来越快。现在一般手机配的是eMMC,旗舰高端手机配的是UFS。

我们这个系列的主角UFS已登场。为什么UFS是主角?为什么我要带大家去了解UFS? 因为,UFS将是未来一段时间内手机存储的主流,我们有必要去了解UFS以及其相关的技术。

那么,什么是UFS?Universal Flash Storage,通用闪存存储。它有两个意思,一是指手机存储接口协议,类似SATA,PCIe/NVMe;二是使用该协议的存储设备。后面文章出现UFS,读者请根据上下文理解。

为什么说UFS是手机存储的未来?无他,快也!

大家感受一下:

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协议的发展历程:

我们可以看到,UFS协议一直在大踏步的朝着更高更快的目标前进。

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和PCIe一样,支持多通道数据传输,目前最多支持两个通道。多通道可以让UFS在成本、功耗和性能之间做取舍。

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

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

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

UFS支持命令队列,就是主机一下可以发很多个命令下去,然后UFS设备支持并行和乱序执行,谁先完成谁先返回状态。这种命令处理方式叫做异步命令处理。而它的前辈eMMC,是不支持命令队列的,命令一个一个执行,或者一包一包(每个包里面含有若干个命令)执行,前面命令没有执行完成,后面的命令是不能发下去的。这种命令处理方式叫做同步命令处理。

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

半双工+同步

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

全双工+异步

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

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

现在的手机,应用非常丰富,你要一边斗地主,一边听歌,还要聊微信,多线程操作。由于全双工和命令队列的存在,UFS处理命令的效率大大提高,给用户极好的体验。

前面我们拿UFS和eMMC做了几个对比,但我好像忘了说什么是eMMC。有人可能懵逼,什么是eMMC?

eMMC,Embedded Multi Media Card,和UFS一样,也是JEDEC制定的移动存储协议,它是UFS前一代协议标准。

eMMC最新标准是2015年发布的eMMC5.1,最高速度是400MB/s。JEDEC已经有了UFS,不确定会不会再发布新的eMMC标准。毕竟,并行传输的eMMC由于受限于物理信号,速度想要有个质的飞跃是不太现实。

行文至此,让我不由的想起去年那事件。

同一款手机,有人UFS和eMMC混着卖,手机还卖一个价钱,真是无德!UFS和eMMC,速度差异那么大(见下图,来自网络),价格能一样吗?你系统再优化,能把eMMC顺序读写速度优化到401MB/s?别扯什么用户体验,用户都被耍猴了,体验还能好?水能载舟,亦能覆舟,不要太得意忘形。

如果说eMMC是手机中的HDD,那么UFS就是手机中的SSD。UFS取代eMMC成为主流手机存储协议,这是毫无疑问的。不过,UFS一统天下的道路上还有一个拦路虎,那就是NVMe。有人说,NVMe不是SSD的协议标准吗?没错,不过,我要提醒大家的是,苹果现在手机中存储协议是NVMe而不是UFS。在短期,UFS和NVMe会分别在安卓和苹果手机中存在。长期来说,UFS和NVMe是二分天下,还是合二为一,我们只能拭目以待了。

在本章结束前,给大家看看UFS(BGA形式)的实物图:

大小如大拇指手指盖大小。麻雀虽小,五脏俱全。UFS存储芯片内部封装了UFS控制器和闪存阵列,和SSD结构很相似。不过和SSD相比,由于它的容量更小,因此闪存die比较少,闪存的通道数也少。另外,出于功耗和成本考虑,UFS芯片一般是不带DRAM的架构。

UFS芯片内部设计与实现不是我们本系列的重点,本系列后续文章将专注于UFS协议。

蛋蛋读UFS之一:UFS简介相关推荐

  1. 蛋蛋读UFS之三:UFS数据包UPIU

    转自:蛋蛋读UFS之三:UFS数据包UPIU UFS中流淌的数据包叫做UPIU(UFS Protocol Information Unit,UFS协议信息单元),它是固定格式的数据结构,用以传输应用层 ...

  2. 蛋蛋读UFS之二:UFS协议栈

    转自:蛋蛋读UFS之二:UFS协议栈 任何一种接口或者协议,都是由一个完整的协议栈组成的.UFS也不例外. UFS定义了一个完整的协议栈.从上到下,依次为应用层.传输层.数据链路层和物理层.UFS使用 ...

  3. 蛋蛋读UFS之九:UFS数据安全

    转自:蛋蛋读UFS之九:UFS数据安全 前面提到RPMB使用认证机制和抗重放攻击机制保障数据不被黑客攻击,除此之外,UFS还有其它一些手段来保护用户数据安全,这一章节我们来关注UFS数据安全. UFS ...

  4. 蛋蛋读UFS之六:UFS设备初始化和启动

    转自:蛋蛋读UFS之六:UFS设备初始化和启动 这一节讲讲UFS初始化. 初始化和启动包括三个阶段:部分初始化,加载启动代码(可选)和初始化完成. 部分初始化阶段 这个阶段开始于上电或者设备重启,它涉 ...

  5. 蛋蛋读UFS之十:UFS电源管理

    转自:蛋蛋读UFS之十:UFS电源管理 UFS是手机存储设备,因此对功耗要求很高.我们来看看UFS的电源管理. 三个供电电压,VCC,VCCQ和VCCQ2,分别给UFS设备模块供电.UFS设备主要包括 ...

  6. UFS 1-UFS架构简介1

    UFS 1-UFS架构简介 1 UFS是什么? 1.1 UFS 1.2 一般特征 1.2.1 Target performance 1.2.2 Target host applications 1.2 ...

  7. UFS 3 - UFS RPMB

    UFS 1-UFS RPMB 1 RPMB介绍 2 RPMB Well Known Logical Unit Description 3 Requirements 3.1 RPMB Resources ...

  8. UFS 11 - UFS RPMB分区功能验证

    UFS 11 - UFS RPMB分区功能验证 1 ufs-utils下载和编译 1.1 ufs-utils开源代码下载 1.2 编译 2 ufs-utils工具使用 2.1 ufs-utils -- ...

  9. UFS 5 - UFS UIC Layer: MIPI M-PHY

    UFS 5 - UFS UIC Layer: MIPI M-PHY 1 Termination 2 Drive Levels 3 PHY State machine 4 HS Burst 4.1 HS ...

最新文章

  1. webapi控制器怎么接收json_一个秒杀系统的登录系统到底是怎么工作的
  2. BLOCK层基本概念:bio,request,request_queue
  3. python海伦公式_少儿编程Python第2课-if语句(海伦公式)
  4. java定时任务框架elasticjob详解
  5. 如何使用AHAS故障演练,实现具备韧性的系统架构?
  6. 工业定焦镜头的选型公式
  7. cesium 设置地球默认区域为中国 一键返回默认区域
  8. cout 和 printf 性能比较
  9. 【OpenCV】入门学习资料汇总
  10. webrtc 渲染_[WebRTC架构分析]采样率转换
  11. Java中关于HashMap的使用和遍历
  12. 【JAVA】Socket文件上传遇到的问题!~
  13. cuda安装及百度云链接
  14. input 输入法禁用
  15. 计算机的神奇功能华为,接上线就变PC!华为Mate 10的电脑模式究竟好用不?
  16. Web—13-判断网站请求来自手机还是pc浏览器
  17. css浮动,清除浮动,溢出属性,定位,设置透明度
  18. c语言课程设计研究生初试录取报告,C语言程序设计课程设计 研究生初试录取
  19. 《出版专业实务》(2015年版初级)思考与练习答案 第二章
  20. sourcetree 免费许可证

热门文章

  1. 机器学习8—聚类算法之DBSCAN和Birch算法
  2. 链塔智库|区块链产业要闻及动态周报(2021年3月第4周)
  3. IO线程模型Reactor模型
  4. mac创建桌面快捷方式
  5. 【NJUSE操作系统】1. 计算机操作系统概述
  6. vagrant 常用 命令
  7. vue-quill-editor 自定义 img 标签,给标签添加 href 属性
  8. jquery省市区ajax,jQuery省市区三级联动
  9. 系统学习前端之FormData详解
  10. mysql中的mha简介_mha 简介