一、概述
MMC 卡和 SD 卡都是基于 Nand Flash 技术的移动存储卡。
MMC(MultiMediaCard) 卡于 1997 年由西门子和 Sandisk 推出,SD (Secure Digital Memory Card)卡于 1999 年首次由松下、东芝和 Sandisk 公开发布。
SD卡基于 MMC 发展而来,二者最初的外观尺寸也很类似,SD 卡比 MMC 卡厚 0.7mm。
早期 SD 卡对 MMC 卡的兼容性较强,多数支持 SD 卡插槽的设备都可以同时支持 MMC 卡,反之只有 MMC 卡插槽的设备不能够支持 SD 卡。
随着 MMC 卡和 SD 卡的发展竞争,二者之间的差异越来越大,走向了截然不同的发展方向。
发展到今天, MMC 卡基本退出了历史舞台,转而走向了嵌入式领域,推出了 eMMC(embedded MMC) 标准,在嵌入式存储方面应用广泛。
SD 卡在移动存储卡领域的地位越发稳固,不断向大容量和高速度方向发展,推出了一系列接口标准,目前最新的理论传输速率已达 985MB/s。
二、MMC 发展历史
MMC 卡的全称是 MultiMediaCard,中文翻译为“多媒体卡”。
MMC 卡的设计目标是提供一种“广泛应用于电子玩具、pda、照相机、智能手机、数字录音机、MP3播放器、寻呼机等等领域”的通用低成本数据存储和通信媒体。
2.1 重要版本演进
2.1.1 MMC 1.x/2.x 版本阶段
从目前可检索到的 MMC 技术文档来看,MMC 初始 1.0 版本的 Spec 在 1996 年就已经制定完成,1997 年推出相关产品。
从 1.0 到 2.0 版本的发展阶段在 1996-2000 年,该阶段 MMC 卡的形态及技术规格没有大的变化,主要是一些内部功能性的演进。
这个阶段 MMC 卡的主要特性:
- Size:24mm x 32mm x 1.4mm
- Pins:7pins
- Bus Width:1bit
- Bus Mode:MMC mode & SPI mode
- Voltage:2.7 - 3.6V
- Clock:0 – 20MHz
外观大概是这个样子(图片来自网络):
2.1.2 MMC v3.x 版本阶段
v3.0 版本是 MMC 发展历史上一个重要的版本,该版本相对于 1.0/2.0 版本有重大变化。
但是由于 v3.0 版本在内部寄存器定义中有严重错误,v3.0 版本很快被更新为 v3.1,并且 v3.0 版本被废弃。
v3.1 版本新增了两个重要特性:
- 引入 Low Voltage 规格,支持 1.65 - 1.95V 工作电压
- 增加 multiple block read/write 特性,提升 Performance
v3.3 版本也是一个重要的版本,该版本新增 RS-MMC(Reduced Size MMC)规格,制定 24mm x 18mm x 1.4mm 尺寸规格,将 MMC 卡的大小减少近一半。
RS-MMC 只是物理尺寸的定义,硬件接口没有变化,外观大概这个样子(图片来自网络):
2.1.3 MMC v4.x 版本阶段
v4.x 系列版本从 2004 年开始发布,v4.x 是 MMC 最为流行的版本,也是目前为止持续时间最长的版本,从 2004 年 v4.1 发布到 2013 v5.0 发布共持续了 9 年。
其间,JEDEC (Joint Electron Device Engineering Council 电子元件工业联合会)采用 MMC4.1 标准作为 JEDEC 的闪存卡标准;
随后 MMCA(Multi Media Card Association 快闪记忆卡标准组织)正式并入 JEDEC,MMC 标准由 JEDEC 主导推进。
目前,从 JEDEC 官方站点可以下载到的 MMC 最早版本为 v4.1,其直接继承自 MMCA 的 MMC v4.1 版本。
2.1.3.1 MMC v4.1 版本
鉴于之前版本的 MMC 卡性能较差,v4.1 版本增加了以下重要的特性以提升性能并做到向后兼容:
- 工作频率支持三种模式:0-20MHz、0-26MHz、0-52MHz、
- Bus Width 支持三种模式:1/4/8bits
- 定义了最低 Performance 标准:2.4MB/s
- 向后兼容 v3.x 版本 MMC(1 bit data bus,multicard systems)
- MMC mode 只支持 one card per MMC bus
- SPI mode 支持 MMC Chip Select Signal,可实现 multiple cards per MMC bus
- 提升 MMC 卡的存储容量
符合 v4.1 版本规格的 MMC 卡称为 HS MMC(High Speed MMC),由于 bus width 变化,所以 HS MMC 卡的接口增加了 6pins,变成 13pins
v4.1 版本对市场上的 MMC 产品进行了明确的划分,定义了两种 MMC 卡类型:MMCplus 和 MMCmobile,只有符合相应规格的卡片才能使用 MMCplus 或 MMCmobile logo。
MMCplus 和 MMCmobile 应用于不同的使用场景,均向后兼容 v3.x 20MHz clock 的工作模式
2.1.3.1.1 MMCplus 规格
MMCplus 规格:
- size:24mm x 32mm x 1.4mm,全尺寸
- Voltage:2.7 - 3.6V
- Pins:13pins
- bus width:1/4/8bits
- Bus Mode:MMC mode & SPI mode
- Clock:26MHz(52MHz 可选)
- Performance:不低于 2.4MB/s
其外观如下图所示:
2.1.3.1.2 MMCmobile 规格
MMCmobile 规格:
- size:24mm x 18mm x 1.4mm,符合 RS-MMC 标准
- Voltage:2.7 - 3.6V/1.65 - 1.95V,支持 Low Voltage 模式
- Pins:13pins
- bus width:1/4/8bits
- Bus Mode:MMC mode & SPI mode
- Clock:26MHz(52MHz 可选)
- Performance:不低于 2.4MB/s
其外观如下图所示:
2.1.3.1.3 MMCmirco 规格
Samsung 于 2004 年底发布了一款 MMCmirco 卡,该卡不同于 MMC Spec 中定义的 MMCplus 和 MMCmobile 规格,其尺寸降低至:12mm x 14mm x 1.1mm,大概为 RS-MMC 的 1/3。
MMCmicro 是 Samsung 发布的第三方规格,初期并没有收录到 MMC 标准中,依靠 Samsung 自身的影响力及其轻巧的尺寸占有一定的市场地位。
随后,MMCA协会也正式发布了 MMCmicro 的技术规范。在 2005 年 6 月底于瑞士苏黎世举行的 MMCA 夏季大会上,MMCA 全体参会成员一致同意将 MMCmicro 卡确立为 MMCA 新一代标准。
继 2004 年底 MMCA 发布 MMCplus 卡和 MMCmobile 卡之后,全新的微小尺寸的 MMCmicro 卡可谓是 MMC 技术的新一代标准。
MMCmicro 卡外观如下图所示:
2.1.3.2 MMC v4.2 版本
v4.1 版本定义的寻址方式为 Byte 寻址,理论上可以支持最大容量为 4GB
v4.2 版本增加了 sector 寻址模式,每个 sector 为 512Byte,小于 2GB 容量的卡采用 Byte 寻址模式,大于 2GB 容量的卡采用 sector 寻址模式
同时 v4.2 版本将 Low Voltage 工作电压范围修改为 1.7 - 1.95V
2.1.3.3 MMC v4.3 版本
v4.3 版本也是 MMC 发展史上一个具有里程碑式意义的版本,该版本引入了 eMMC 规格定义,支持 eMMC boot 启动功能,进入嵌入式领域。
重新定义了 CID 寄存器的格式,以区分 Device 是 eMMC 还是 MMC Card。
虽然 MMC Spec 并没有正式收录 MMCmicro 卡的规格,但是在 v4.3 Spec 还是增加定义了 MMCmicro 的 signal input capacitance(信号输入电容标准)。
2.1.3.4 MMC v4.4x 版本
v4.4 版本一个重要的改动是加入了 DDR(Dual Data Rate)模式,即信号的双边采样,在 clock 的上升沿和下降沿都会采样一次数据。
DDR mode 将理论传输速率提升了一倍,达到 104MB/s。
v4.4 版本还新增了 RPMB(Replay Protected Memory Block)功能,用于实现数据的加密读写。RPMB 主要用于系统一些关键私密的数据的存储。
接下来的 v4.41 版本主要增加了 Background Operations 和 High Priority Interrupt 两个可选的功能,不强制要求实现。
- Background Operations 赋予 MMC/eMMC 执行后台操作的能力
- High Priority Interrupt 允许 MMC/eMMC 的某些命令执行允许被更高优先级的任务中断
2.1.3.5 eMMC v4.5x 版本
v4.5 版本是 MMC 发展史上另一个里程碑式的版本,该版本封面正式移除了 MMCA 的 logo,只保留了 JEDEC 的 logo,MMCA 退出历史舞台。
同时 v4.5 版本移除了 MMC Card 的支持,只保留 eMMC 的规格定义,MMC Card 也退出了历史舞台,进入了 eMMC 标准时代。
v4.5 版本其他重要的改进包括:
增加 HS200 mode,将工作频率提高到 200MHz,理论传输速率可达 200MB/s
增加 Cache 功能,进一步提升 eMMC 的性能。
2.1.4 eMMC v5.x 版本阶段
该阶段 eMMC 的发展的主要方向在于提升性能。
2013 年发布的 v5.0 版本增加了 HS400 mode,在 HS200 的基础上增加 DDR mode(信号双边采样),将理论传输速率提升至 400MB/s。
2015 年发布的 v5.1 版本增加了 Command Queue 功能,优化 eMMC 内部的操作效率,提升 eMMC 整体的 Performance。
v5.1 版本同时发布了一个 Command Queue Host Controller Interface(CQHCI)标准,用于 Host 端实现 Command Queue 硬件支持的设计标准。
另外 v5.1 版本新增了 HS400ES mode,在 HS400 mode 的基础上提高了 CMD Responce 接收到可靠性。
2.2 eMMC 发展趋势
MMC 发展到今天,只剩下嵌入式应用的 eMMC 标准,但是在 2015 年 v5.1 版本发布后,已经有 4 年没有更新标准了。
eMMC 如果想进一步提升性能,就需要采用更高频率的 clock,对于 eMMC 使用的并行接口而言,可能会遇到信号完整性等方面的瓶颈。
2016 年 JEDEC 发布的 UFS 存储标准采用差分串行总线取代了 eMMC 的并行接口,可以达到远超 eMMC 的性能,有替代 eMMC 的趋势。
目前在高端手持移动设备领域,UFS 正在逐步替代 eMMC;在车机、低成本/低端的手持设备以及其他一些嵌入式设备中,eMMC 还占有较高的应用比例。
eMMC 和 UFS 目前都是 JEDEC 在维护开发,不存在竞争关系,从现状看,eMMC 再推出革命性的版本升级的可能性不大。
因此,可以猜测未来的发展趋势:
eMMC 可能会逐步被 UFS 取代,成为过时的技术;eMMC 也会长期存在于一些低成本或对存储性能要求不高的设备上。
三、SD 发展历史
SD(Secure Digital Memory Card) 卡是在 MMC 卡基础 上发展起来的,中文名称为:安全数字存储卡。
SD 卡发布之初,与 MMC 卡的最大区别就在安全(Secure)上,其支持 SDMI 标准,可提供保护 SD 卡上存储的音乐版权等功能。
SD 卡于 1999 年开发研制,Panasonic、Sandisk 和 Toshiba 于 2000 年成立了 SDA(SD Association) 协会主导 SD 卡的标准制定。
到目前为止,SD 卡的标准已经发展到 v7.0,在移动存储卡领域已经占据主导性地位。
3.1 重要版本演进
3.1.1 v1.xx 版本阶段
v1.xx 版本阶段从 2000 年开始,持续到 2006 年 v2.xx 版本发布。
也许是受益于后发优势,SD 卡在初始 v1.00 版本就支持了双电压操作模式和 1/4bits bus width,上市之初其被市场接纳程度就超过同期的 MMC卡。
SD卡初始发布的 v1.00 版本规格的主要特性有:
- Size:24mm x 32mm x 2.1mm(Normal)/24mm x 32mm x 1.4mm(Thin)
- Pins:9pins
- Bus Width:1/4bits
- Bus Mode:SD mode & SPI mode
- Voltage:2.0 - 3.6V/1.6 - 3.6V
- Clock:0 – 25MHz
- Performance:10MB/s
为了应对 RS-MMC 的市场竞争,2003 年由 SanDisk 率先推出了 miniSD,尺寸为:21.5mm x 20mm x 1.4mm,号称当时最小尺寸的 Nand 存储卡。
SD卡 和 MMC 卡在竞争中向前发展,2004 年发布的 SD v1.10 版本的主要竞争对手是 MMC v4.x 标准。
SD v1.10 引入了 High Speed mode,将 Clock 频率提升到 0 - 50MHz,最大理论 Performance 为 25MB/s,兼容 MMC v2.11 标准。
同时推出 TransFlash Card(又称 T-Flash 或者 TF 卡),后来统一为 microSD 卡。
microSD 的尺寸只有:11mm x 15mm x 1mm。
至此,SD 的物理尺寸一共有三种:SD、miniSD、microSD,在后来的市场筛选中只保留了 SD 和 mircoSD 两种标准,也就是现在可以买到的两种 SD 卡(如下图所示)。
3.1.2 v2.xx 版本阶段
SD 卡和 MMC 卡类似,在三个方向发展进化:速度,容量,尺寸。
v1.xx 版本阶段,SD 卡的尺寸规格已基本定型,2006 年推出的 v2.00 标准将 SD 卡的容量扩展到 32GB,将 SD 卡容量分为 SD/SDHC 两种规格:
- SD:Standard Capacity SD Memory Card,指 2GB 及以下容量的 SD 卡
- SDHC:High Capacity SD Memory Card,指 2GB – 32GB 容量的 SD 卡
3.1.3 v3.xx 版本阶段
2009 年开始发布的 v3.xx 版本是 SD 卡发展历史上很重要的一个阶段,虽然现在 SD 卡标准已发展到 v7.xx,但是 v3.xx 依然非常流行。
v3.xx 在 v2.xx 版本的基础上有如下重大更新:
- 新增 SDXC 容量标准,SDXC 规格的 SD 卡容量为 32GB – 2TB
- 引入 UHS-I (Ultra High Speed)总线标准,将 Clock 提升到 208MHz,最高理论传输速率为 104MB/s
到 v3.xx 版本,SD 卡基本分类:
- 容量:SD(0-2GB),SDHC(2 - 32GB),SDXC(32GB – 2TB)
- 速度:Default(0 - 25MHz),High Speed mode (0 - 50MHz),UHS - I(0 -208MHz)
3.1.4 v4.xx 版本阶段
从 v3.xx 版本到 v4.xx 版本,可以算作 SD 卡发展到一个分水岭。
在 v3.xx 版本,SD 卡支持的 Bus 规格都是 4bits 宽度的并行总线,最高工作频率达到 208MHz,理论传输速率可达 104MB/s。
和 eMMC 遇到的问题一样,v3.xx 版本的 SD 标准想进一步提高传输速率的话,4bits 的并行总线会成为其阻力。
因此 v4.xx 版本引入了 UHS-II mode,该 mode 使用了低电压串行差分总线技术,将理论传输速率提升至 312MB/s,支持全双工模式,单路理论速率为 1.56Gbps。
3.1.5 快速发展阶段
v4.20 版本之后,SD 标准进入了一个快速发展阶段,下面这张 SD 技术演进图可以很好地展示其发展脉络。
v5.xx 版本统一了 SD 卡容量和速度的分类规范
v6.xx 版本引入了新的速度模式,UHS-III,将理论传输速率提升至 524MB/s
v7.xx 版本在速度和容量都有升级,推出了 SDUC 容量规格,总线传输支持 PCIe,理论传输速率提升到 940MB/s
3.2 SD 发展趋势
从 SD 标准的技术发展现状和市场现有的 SD 卡产品来看,标准的制定已经远远领先于产品技术的发展。
当下 SD 卡的发展方向无非就是更大的容量和更快的速度,这两个发展方向都依赖于固态存储的技术进步。
SD 标准已经将传输管道做得足够粗,接下来就看各 SD 卡厂商如何填满这个粗管道,有效利用其传输性能。
四、总结
MMC 和 SD 作为两种同源的存储技术经历了 20 多年的发展,到今天走向两个不同的技术路线。
MMC 发展为 eMMC 标准面向嵌入式存储领域,SD 在移动存储领域深耕。
从二者目前的发展趋势看,eMMC 正在被更先进的 UFS 技术标准取代,SD 的发展前景似乎更为广阔。
技术的发展日新月异,随着 5G 和云存储技术的发展,无处不在的高速网络连接和越来越低的云存储成本将是必然的趋势。
这些技术进步将会对 UFS/eMMC/SD 等本地存储技术造成什么样的冲击,我们拭目以待。