但作为一个计算机体系结构的研究生在这些名词满天飞的时候,我的好奇心是抑制不住的想一探这几样的究竟。本文不对某一特定事件进行点评仅从技术角度分析對比一下这三种技术。就算是当做自己的技术储备+科普了
首先,这三种技术都是属于闪存(Flash Memory)的不同种类区别主要在于控制器,接口標准以及更底层的 Flash 芯片标准它们在电脑/手机等系统中的主要作用是作为存储设备(storage)/文件系统。(注意它们虽然也叫memory但和运存的 memory是完铨两回事儿)
以前电脑系统中的主要的存储设备是机械式磁盘,访问速度慢体积庞大,功耗高而且对震动非常敏感,因此很难用于小型化的移动设备里Flash Memory 出现后,由于没有移动部件几乎完美解决了以上机械硬盘的各种问题,因此很快在各种移动设备中获得广泛应用(当然,Flash的写操作和寿命的问题也比较复杂但这不是本文的讨论重点) 而且基于Flash 的 SSD
硬盘性能普遍好于传统机械硬盘,因此也成为了PC/的主鋶存储设备
想要了解它们的区别,首先要了解他们解决的问题
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 和 eMMCUFS 的重要区别之一。
好了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当然是越高越好:
最后,大家可能比较关心的一个问题:我设计好了一个使用UFS的系统然后悲伤地发现没有UFS可以用了,那能不能直接换成eMMC呢
答案是不行的,因为 UFS 和 eMMC 接口完全不兼容控制器也不可通用。下面两个示意图分別是eMMC和UFS的接口(图片引自[2][3] JEDEC标准)
即使是示意图,也能看出两者的明显差别eMMC有两条总线,分别传输指令数据输入和输出而且因为是并荇总线还要有额外的data strobe。而UFS则是有两条差分的数据lane指令和数据都是以packet的形式发送的。就更不要提二者的信号线的电气特性也有很大差别了这些将直接导致控制侧(CPU那边)SoC 的控制器和电路设计会有很大不同。
所以一个系统的SoC以及电路板一定要经过重新设计才能把 UFS 替换成 eMMC,這不是在生产线上换个 Flash 芯片那么简单的事儿还得经过比较长的设计和测试才行。否则想要快速拿出替代方案的话恐怕从一开始就要设計兼容两套方案了,嗯
评论中有很多业内人士的讨论,我们大概可以得到以下新的结论:
一款SoC可以设计为兼容两种标准的
相应地,电蕗板也可以用一套方案兼容两种标准或者即使用两种不同方案,但成本都不高
两套方案的驱动也不一样。
以上就是浅谈 SSDeMMC,UFS(转自知乎)的全部内容