首先,这三种技术都是属于闪存(Flash Memory)的不同种类,区别主要在于控制器,接口标准以及更底层的 Flash 芯片标准。它们在电脑/手机等系统中的主要作用是作为存储设备(storage)/文件系统。(注意它们虽然也叫memory,但和运存的 memory是完全两回事儿)

以前电脑系统中的主要的存储设备是机械式磁盘,访问速度慢,体积庞大,功耗高,而且对震动非常敏感,因此很难用于小型化的移动设备里。Flash Memory 出现后,由于没有移动部件,几乎完美解决了以上机械硬盘的各种问题,因此很快在各种移动设备中获得广泛应用。(当然,Flash的写操作和寿命的问题也比较复杂,但这不是本文的讨论重点) 而且基于Flash 的 SSD 硬盘性能普遍好于传统机械硬盘,因此也成为了PC/服务器的主流存储设备。

那么既然 SSD,eMMC,UFS 都是 Flash,它们的区别在哪呢?

想要了解它们的区别,首先要了解他们解决的问题。

SSD 主要作用是取代 PC/服务器 上的 HDD 硬盘,它需要:

  • 超大容量(百GB~TB级别)
  • 极高的并行性以提高性能
  • 对功耗,体积等要求并不敏感
  • 兼容已有接口技术 (SATA,PCI等)

而 eMMC 和 UFS主要都是针对移动设备发明的,它们需要:

  • 适当的容量
  • 适当的性能
  • 对功耗 ,体积的要求极其敏感
  • 仅需遵循一定的接口标准 (稍后解释)

为了直观感受一下区别,我刚才特意找来了一个 PCIe 的 SSD,如下图,上面黑色的芯片就是Flash:

我又拆了一个手机,它里面的 Flash 芯片是这样的(中间那个最大的黑色芯片):

看到区别了吗?

一个SSD,为了达到高并行高性能的要求,有多个Flash 芯片,这样就可以在每个芯片上进行相互独立的读写操作,以并行性来提高硬盘吞吐量,还可以增加冗余备份。而手机中为了节省空间和功耗,通常只有一片密度较高的 Flash 芯片。

管理一个 Flash 芯片,和管理多个 Flash 芯片,策略肯定是不一样的,因此它们的控制器 (controller)就完全不同了。而且 PC 上需要兼容 SATA 或 PCIe 或 m2 接口,这样你电脑硬盘坏了的时候,可以拔下来换上另一块同样接口的硬盘能照样用。而手机上的 Flash 芯片大多是直接焊在主板上的,基本上不需要考虑更换的问题,所以只要遵从一个特定标准,能和CPU正常通讯就好了。因此接口的不同也是 SSD 和 eMMC,UFS 的重要区别之一。

好了,SSD 和 (eMMC, UFS)的区别说完了,下面说一下可能很多人会关心的 eMMC 和 UFS 的区别了。

eMMC 和 UFS 都是面向移动端 Flash 的标准,区别在于,二者的接口技术大相径庭。

eMMC 是一个起源较早的技术,全称叫 embedded MultiMedia Card,为什么单单e是小写呢? 因为先有的MMC啊。所谓MMC,大家可能没听过但可能见过,相机中用得较多,和SD卡长得很像(之前的图片就搞错了,感谢评论中各位的提醒)。


MMC前面加了个embedded,主要就是为了突出现在这个设备是embedded 在电路板上。eMMC 和 MMC一样,沿用了 8 bit 的并行接口。在传输速率不高的时代,这个接口够用了。但随着设备对接口的带宽要求越来越高,想把并行接口速率提高也越来越难。eMMC 的最新 5.1标准理论最高值最高可以达到400 MB/s,再往上提高频率也不是不行,但就未必划算了。

好在这几年接口串行化大潮轰轰烈烈。所谓接口串行化,简单来说就是工程师们发现:与其用一个比较宽的并行接口以较低的速率传输,用一个串行接口用非常高的速率传输似乎更划算一些(带宽,功率,成本各方面综合考虑)。所以这个时候 UFS 应运而生,用高速串行接口取代了并行接口,而且还是全双工的,也就是可以读写同时进行。所以相比 eMMC, UFS的理论性能提高不少,甚至可以达到一些SSD的水准。可以在下图直观感受一下,蓝色的是UFS,红色的是eMMC,当然是越高越好:

(图片引自[1] Micron 的文档)

最后,大家可能比较关心的一个问题:我设计好了一个使用UFS的系统,然后悲伤地发现没有UFS可以用了,那能不能直接换成eMMC呢?

答案是不行的,因为 UFS 和 eMMC 接口完全不兼容,控制器也不可通用。下面两个示意图分别是eMMC和UFS的接口(图片引自[2][3] JEDEC标准)。

即使是示意图,也能看出两者的明显差别。eMMC有两条总线,分别传输指令数据输入和输出,而且因为是并行总线还要有额外的data strobe。而UFS则是有两条差分的数据lane,指令和数据都是以packet的形式发送的。就更不要提二者的信号线的电气特性也有很大差别了。这些将直接导致控制侧(CPU那边)SoC 的控制器和电路设计会有很大不同。

所以一个系统的SoC以及电路板一定要经过重新设计,才能把 UFS 替换成 eMMC,这不是在生产线上换个 Flash 芯片那么简单的事儿,还得经过比较长时间的设计和测试才行。否则想要快速拿出替代方案的话,恐怕从一开始就要设计兼容两套方案了,嗯。

---------------------------------------------------

评论中有很多业内人士的讨论,我们大概可以得到以下新的结论:

一款SoC可以设计为兼容两种标准的。

相应地,电路板也可以用一套方案兼容两种标准,或者即使用两种不同方案,但成本都不高。

两套方案的软件驱动也不一样。

SSD,eMMC,UFS的区别相关推荐

  1. 基础——ROM, RAM, FLASH, SSD, DDR3/4, eMMC, UFS, SD卡, TF卡,相互关系

    1. 关系 ROM, RAM, FLASH闪存, SSD, DDR3/4, eMMC, UFS, SD卡, TF卡, 这几个名词在手机和电脑等数码产品的参数中经常出现,单独看还明白是什么,放在一块,他 ...

  2. 手机闪存速度排行_手机很卡可能是只是因为闪存颗粒太差 EMMC UFS大对比

    原标题:手机很卡可能是只是因为闪存颗粒太差 EMMC UFS大对比 在经历了华为的"闪存门"事件以后,人们都开始关注关于手机内存的相关知识.那么所谓的EMMC和UFC到底有什么差别 ...

  3. SAS/SATA/SSD/IDE硬盘介绍区别

    SAS/SATA/SSD/IDE硬盘介绍区别 SAS(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采 ...

  4. SSD和HDD的区别

    SSD和HDD的区别 SSD和HDD有什么区别----性能 固态硬盘和机械硬盘的构造是完全不同的.固态硬盘启动快,没有电机加速旋转的过程. 固态硬盘最大的优势就是几乎没有寻道时间,固态硬盘在操作系统中 ...

  5. EEPROM,NOR Flash,NAND Flash,eMMC,UFS,SSD分别和主要参数及特性

    EEPROM.NOR Flash.NAND Flash.eMMC.UFS.SSD都是非易失性存储器,但它们在架构.存储容量.读写速度.功耗.价格等方面存在不同,具体如下: EEPROM:EEPROM( ...

  6. mmc、emmc、emcp区别

    1.MMC和eMMC的区别 MMC是一种存储器接口协议 eMMC是实现MMC协议的存储芯片 2. eMMC 嵌入式设备的存储器,类似于PC中的硬盘,它将NAND Flash与控制器集成为一体,通过内在 ...

  7. 闪存中的NorFlash、NandFlash及eMMC三者的区别

    (转载自http://www.veryarm.com/1200.html) 快闪存储器(英语:Flash Memory),是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器.这 ...

  8. SAS SATA SSD IDE硬盘介绍区别

    SAS(Serial Attached SCSI)即串行连接SCSI,是新一代的SCSI技术,和现在流行的Serial ATA(SATA)硬盘相同,都是采用串行技术以获得更高的传输速度,并通过缩短连结 ...

  9. ssd与sata的区别

    SATA机械硬盘: 优点:容量大,价格低,技术成熟,存储可靠. 缺点:速度相对于固态较慢,介质越到边缘速度越慢,安全性不高(发生断电.碰撞容易坏),读取数据有轻微响声. SSD固体硬盘: 优点:无噪音 ...

  10. SSD硬盘的接口区别详解图解 SATA、mSATA、PCI-E、M.2(NVMe协议) 、U.2、Type-c、USB、Macbook接口

    转 扫盲:SATA.mSATA .PCIe和M.2--SSD硬盘的接口 2019年03月02日 20:47:06 nedwons 阅读数 11035更多 个人分类: 非技术 SATAT通道:硬盘--内 ...

最新文章

  1. 实例教程八:采用ListView实现数据列表显示
  2. docker整合hue
  3. PHP中的错误控制运算符
  4. 利用windows 2003 实现×××服务器的组建与架构(一) 移动用户到站点之间的×××...
  5. vue.js中mock本地json数据
  6. King Gym - 102471H
  7. python测试驱动开发百度云_【有书共读】《Python测试驱动开发》读书笔记01
  8. 本机与服务器、镜像机之间文件互传
  9. VB 获取光标在TextBox、RichTextBox中所在的位置
  10. 【SimpleITK】坐标次序问题
  11. 解决 ZeroDivisionError integer division or modulo by zero
  12. 盒子模型(标准盒模型、怪异盒模型)
  13. python中字符串输出乱码怎么解决_python字符乱码的解决小结
  14. Java RestTemplate中几种常见的请求方式
  15. gt-itm模型生成拓扑结构
  16. AutoHotKey脚本:帝国时代(罗马复兴)秘籍快速输入
  17. ref和reactive区别
  18. H5入门四:CSS选择的艺术
  19. 一条SQL语句计算出商品剩余库存数量
  20. 超市买菜系统c语言,买菜就像逛超市,市北打造国内首个“智慧农贸”系统

热门文章

  1. python中sinxcosy_∫e^x[(1-cosy)dx-(y-siny)dy],其中c为区域 0≤x≤π,0≤y≤sinx的边界曲线取正向.求曲...
  2. 在终端输入“python”或者”pip“时出现python’不是内部或外部命令,也不是可运行的程序 或批处理文件
  3. Android 9.0中sdcard 的权限和挂载问题
  4. 新疆旅游8天要多少钱,新疆8天价格记录分享
  5. 神经网络未来发展趋势,神经网络未来发展前景
  6. 【技术】Leaflet 地图,惭愧惭愧
  7. dd命令详细(好文收藏)
  8. 计算机打印后台处理程序在哪里,Win7系统连接打印机出现本地打印后台处理程序服务没有运行怎么办...
  9. 文件转换-----(类型,格式)
  10. Ubuntu 修改只读文件