EMMC 全称为嵌入式多媒体卡。在消费电子诸如手机,智慧屏,智能手表等产品上大量使用,其内部存储模块为ROM,(read only memory,其作用就是保证产品关机或者没电的情况下,内部的数据不会丢失掉)
具体演化历史可以参考百度内容,在此就不提了,主要说该协议:JEDEC Standard No. 84-B51 应该指的是jedec这个委员会发布eMMC的51版本. 该协议总共包括:封面,目录,图示介绍,表格介绍,前言,简介,1~11章节,附录A,附录B,附录C,建议与意见这几部分组成。
注释:文中的host、device 还是和协议保持同步,其中对host,我解释为主机,一般指的是SOC/CPU/FPGA等控制器,device 解释为从机,一般指的是外部设备。
前言
本标准通过JEDEC和MMC协会(以下简称MMCA)进行编制。其中JEDEC采用了基本的MMCA规范,并将其用于嵌入式应用程序,所以得名为e•MMC。
简介
eMMC 用于存储代码以及使用期间产生的数据。且专用于可移动式设备,原因在于这类设备有高性能,多功能,低功耗等特点。EMMC也支持大数据传输的高吞吐量和代码使用中常见的小随机数据性能的场景。此外 ,它还具有许多安全功能,能提高我们日常存储数据的安全性。该标准也定义了EMMC的通信模式,被称为EMMC模式,,总共有11种BUS组成。
e•MMC的标准只是涵盖嵌入式设备,不过,其中包含的一些协议和命令最初是为可移动式设备开发的。当前规范中对此进行更新,删除了对可移动设备的引用内容,仍存在一些功能用于支持后续的兼容性。
在本标准中,“shall”或“will”表示强制性规定,必须执行。“should”表示建议而非强制性规定。“may”不做为强制性要求,由设计人员自由决定。
1. 适用范围
该标准包含对e•MMC电气性接口、工作环境,工作方式的定义。同时提供了设计指南,并定义了一套宏函数和算法工具,以便减少设计中的冗余。
2. 引用标准
该协议规范引用了如下标准及协议,有引用日期的参考当前标准,没有引用日期的标准参考最新版本。
INCITS:通常代表INternational Committee for Information Technology Standards,其意思是——国际信息技术标准委员会。
T10 Committee :美国国家标准协会T10委员会
SPC-4:SCSI Primary Commands – 4
SPSCSI Primary Commands:个人理解指的是一种小型计算机系统接口命令,参考:SCSI(Small Computer System Interface)PrimaryCommands 。
3. 术语及定义
以下涉及术语用于当前标准的出版。
对地址空间的分类及定义:
host地址空间映射:软件设计人员可通过读取命令访问的e•MMC这块区域。
供应商专属地址空间:这部分区域不能通过软件读取访问。主要包含IC供应商的内部数据管理,例如存储器供应商固件和映射表。该数据可以在生产器件加入,或者设备运行期间产生。此处区域和host发送到device的任何数据不相关。
未映射的地址空间:这部分区域不能通过软件读取访问。它也不属于供应商指定的地址空间。一般会备份host的数据或者存储GC时产生的数据。
block:译为数据块,是flash中基本数据的传输单位。
CID: Device IDentification register 设备识别寄存器,类似于我们的身份证号码。
CLK: Clock signal,时钟信号。数据传输以处理都需要时钟信号,类似于心脏跳动,从而使各个器官运行。
CMD: Command line or e•MMC bus command (if extended CMDXX),指的是host对device传达的指令。
CRC: Cyclic Redundancy Check 循环冗余校验,一种校验传输数据是否正确的方式。
CSD: Device Specific Data register,用于保存EMMC运行期间的状态。
DAT: Data line 数据传输总线,总共有8根(data0~data7),用于host和device之间双向传输数据。
拿手机为例,SOC只会camera拍视频后,通过data line将数据保存在EMMC的userdata区域某个分区中,即使手机没电关机后,EMMC中的数据依然有效,当手机再次充电后,我们想看之前录制的视频时,SOC会下发CMD,device收到CMD后对SOC进行响应,视频通过data line 由device传向SOC,保存在DRAM中进行缓存,SOC调度LCD屏幕,实现播放视频。
Data Strobe: Return Clock signal used in HS400 mode,该信号线是双向的,在data line 传输数据期间进行选通。类似于开关的功能。
DISCARD: 是由host发出的命令,用于识别一些不需要的数据区域,比如现在手机永久了会提示内存不足,询问是否需要删除不需要的应用或者设备,此时我们选择不要的数据或者应用并点击OK后,host 就会识别到这些这些应用存在的数据区域进行内部设置mapping table,断开数据映射关系,等待GC。
此外,还存在一种Trim 命令也用作删除数据。
DDR: Dual data rate. 双倍速率传输,指的是数据会在时钟信号的上升沿和下降沿均进行传输。
DSR: Driver Stage Register 驱动阶段寄存器,用于改变系统性能。
D-VDD: cache(缓存) 的电压正极,
D-VSS: cache(缓存) 的电压接地极,
D-VDDQ: cache(缓存) 的IO(input/output) 电压正极,
D-VSSQ: cache(缓存) 的IO(input/output) 电压接地极,
e•MMC: 嵌入式多媒体卡,其cache可进行修改,同时支持单个引脚。
e 2 •MMC: 嵌入式多媒体卡,其cache可进行修改,同时支持三个引脚。
Empty Task Queue: 无任务队列,指的是device的任务队列中无任务的状态,类似于汽车的怠速状态。
ERASE: 一种擦除操作,只是断开了逻辑映射关系,而没有擦除EMMC物理存储单元中的数据。
Flash:一种可多次编程的非易失性存储器,非易失性指的是器件本身掉电后数据不会丢失。
Group: 综合了擦除和写入保护单元的数据块,数据可以被写入。
HS200: 高速接口时序模式,其数据在时钟频率为200MHz的情况下,使用单倍数据传输模式,数据传输速率达到200MB/s,I/O供电电压为1V8或者1V2
HS400: 高速双倍数据接口时序模式,其数据在时钟频率为200MHz的情况下,使用双倍数据传输模式,数据传输速率达到400MB/s,I/O供电电压为1V8或者1V2
时钟频率超过50MHz 可被认为是高速信号。
SDR和DDR的区别是SDR是Data line 总在时钟信号的上升沿传输数据,而DDR是Data line 在时钟信号的上升沿和下降沿均传输数据。所以SDR称为单倍速率,DDR称为双倍速率。
ISI: 码间干扰。setup/hold余量不足,会使信号在传输过程中,每个UI之间的数据产生干扰,导致数据出错。
LOW, HIGH: Binary interface states with defined assignment to a voltage level
模拟信号转数字信号后的二进制状态,具体取决于参考电平,其抗干扰能力较强。
NSAC: Defines the worst case for the clock rate dependent factor of the data access time
定义了伴随数据传输的时钟速率最恶劣情况。
Non-Persistent: A part of the storage device that may lose contents after a power cycle
非持久性,属于存储设备的一部分区域,掉电后在上电时 其数据会丢失。
MSB, LSB: Most Significant Bit or Least Significant Bit
most significant bit : 进制数据的最高位,
Least Significant Bit : 进制数据的最低位,
OCR: Operation Conditions Register 参考百度为: 操作条件寄存器。
open-drain: 逻辑电平的操作模式——开漏模式,只能输出低电平,需要借助外部上拉电阻才能输出高电平。
优点:可以实现电平转换和线与功能。
payload: Net data ,指的是原始数据,涉及加密等信息。
push-pull: 逻辑电平的操作模式——推挽输出,由一对互补性mos管构成的电路,用于逻辑电平的高低电平切换。
QSR: Queue Status Register 队列状态寄存器
RCA: Relative Device Address register 相对设备地址寄存器
Reset: 复位信号,通过带有0x00000000 或者0xF0F0F0F0的CMD0 命令或者硬件复位(或者下发CMD15)
ROM: Read Only Memory(只读存储单元,掉电后数据不会丢失)
RPMB: Replay Protected Memory Block 多重保护存储块,用于保护数据的安全性
SSO: Simultaneous Switching Output (referred as certain type of Noise)
同步开关输出,参考同步开关噪声。
Secure Purge: 在可寻址的位置上使用功能,执行后会从未映射的host地址空间中删除所有数据,具体配置可通过host端配置Etend_CSD寄存器进行指定。
加注:The definition of secure purge is technology dependent (the definition above assumes NAND flash). Please refer to the http://www.killdisk.com/dod.htm or the following documents for more details. DoD 5220.22M (http://www.dtic.mil/whs/directives/corres/html/522022m.htm) and NIST SP 800-88 (http://csrc.nist.gov/publications/nistpubs/800-88/NISTSP800-88_rev1.pdf)
SQS: 发送队列状态,可通过SQS位置1发送CMD13 命令后进行QSR查询。
stuff bit: Filling 0 bits to ensure fixed length frames for commands and responses
为了保持命令长度相等,通过补0进行填充。
TAAC: 用于定义和数据访问时间相关的参数,可通过CSD寄存器进行配置。
three-state driver: 可以输出三态驱动,分别是高电平,低电平,以及高阻态,说明了该接口不会受到接口电平的影响。
token:表示命令的代码字,为计算机中的一种操作。
TRIM: 一种可以从写入保护组中删除数据的命令,用于删除数据。trim 命令被执行后,读到该区域的数据为‘0’。
Tuning Process: 调试处理,用于host端对输入信号进行调整,寻找合适的采样点,利于高速信号传输期间,保证采样数据的正确性。在device中有专门用于在HS200模式下,供tunning的调谐数据块。
UI: 单元间隔,作为单bit数据传输时需要的时间。举例:在时钟频率为200MHz时,单倍数据传输模式下,一个UI=1/f=1/200MHz=5ns。而在双倍数据传输模式下,一个UI=1/f/2=1/200MHz/2=2.5ns。
UTC:Universal time coordinated 世界标准时间
VDD: 表示在VCC=VCCQ,单路供电模式下的电压值,或者提供全部消耗电流时的电压值。
VSS: 提供内部核心单元电压的电源地。
VCC: 提供内部核心单元电压的电源正极
VCCQ : 为I/O接口提供电源的电源正极
VSSQ : 为I/O接口提供电源的电源地
Write Protection, Permanent: Write and erase prevention scheme, that once enabled, cannot be reversed. 永久性写入保护:一次性写入,无法擦除
Write Protection, Power-on: Write and erase prevention scheme, that once enabled, can only be reversed when a power failure event, that causes the device to reboot occurs, or the device is reset using the reset pin.
上电写入保护:一种写入保护方案,使能后会在上电异常时或者复位后重新写入。
Write protection, Temporary: Write and erase prevention scheme that can be enabled and disabled.
临时性写入保护:可以被启用或者禁用。