4. System Features
e•MMC spec 定义了对内存阵列的间接内存访问机制内部功能,并可以通过host进行管理。这种间接访问方式通常由通过单独的控制器进行管理调度。其优点在于device 可以在没有主机软件的场景下,内部执行若干后台存储器管理任务。从而简化了host系统上的闪存管理机制。
eMMC devices 支持以下功能:
EMMC 电压范围
具有11条总线(包括 时钟信号线,数据选通信号线,1条命令信号线,8条数据信号线)以及硬件复位功能,时钟频率范围在于0-200MHz之间,同时具有三种数据总线位宽,分别是:1位(默认),4位以及8位。
四种数据保护功能,分别是密码保护,永久性保护和上电保护,临时性数据保护。
不同类型的数据保护读写模式,分别是单个block保护和多个block保护。
三种数据删除命令,分别是 erase,trim以及Sanitize
具有突发性掉电数据保护机制
可使用专用应用程序的命令提供对应的解决方法
具有休眠模式
自身可通过以下方式加强host和device之间的通信能力进而提高自身性能
- Power Off Notification 掉电通知
- High Priority Interrupt (HPI) 高优先级中断
- Background Operations 后台作业
- Partitioning 可进行分区
- Enhanced Regions 区域性增强
- Real Time Clock 实时时钟
- Partition Attributes 设置分区属性
- Context management 上下文管理
- System data tagging 系统数据标记
- Packed commands 命令打包发送
- Dynamic Device Capacity 动态device空间设置
- Optional Volatile Cache 易失性cache容量设置
- Cache Enhancement Barrier 增强型内存屏障
- Package Case Temperature 外壳温度检测
- Command Queuing 命令排队
- Enhanced Strobe 增强选通模式
- Package Case Temperature 壳温检测
Boot Areas that will automatically stream data when using defined boot modes.
boot 区域指的是在已定义的启动模式中,数据流自动流动的区域
Signed access to a Replay Protected Memory Block 对重放受保护内存块进行签名访问
Two types of high capacity devices: small 512B sector devices and large 4KB sector devices,两种高容量设备:512B扇区访问和4KB扇区访问。
5 EMMC外设系统
该EMMC标准定义了接口和device controller 之间的通信方式,同时,作为本规范的一部分,也仅仅提到了controller和内部存储单元,并没有未完全说明这这两者之间的工作原理。
EMMC 系统框架
5.2 Memory Addressing 内存寻址
之前的e•MMC规范(v4.1版本之前)实现了32位字段的字节寻址。这种寻址机制下,e•MMC容量高达2 GB(含2 GB)。为了能够拥有更大的密度,寻址机制进行改进,用来支持扇区地址(即512 Byte扇区)。扇区地址用于容量在2 GB及以上的存储IC。可以通过host获取OCR寄存器中的位[30:29]设置具体的寻址方式。
5.3 e•MMC Device Overview EMMC device 概述
通过可配置数量的数据总线,e•MMC device 进行信号传输数据。通信信号如下:
CLK:该信号的每个周期内,传输命令的一个bit,数据线上的一位(1x)或两位传输(2x)。CLK 频率可以在零和最大时钟频率之间进行改变。
data strobe:数据选通信号,该信号由device 产生,用于HS400模式下输出。该信号的频率和CLK的频率保持一致。同时该信号的每个周期实现的两位数据传输(2x)——即上升沿传输和下降沿传输。对于CRC状态响应输出和CMD响应输出(仅启用HS400增强选通模式),CRC校验和CMD响应只在上升沿传输,而与下降沿无关。
CMD: 命令信号,该信号是双向通道,用于device 初始化以及命令传输,有两种工作模式:开漏输出模式(工作于初始化模式)和推挽输出工作为高速命令传输的场景下。其中host controller发送CMD 后,device 进行接收,接着对host的响应作响应。
Data0-Data7:以上总线可进行双向传输,data 信号线工作在推挽模式下,只能通过host和device controller进行驱动。默认上电或者复位后,只有data0传输信号。同时data0-data3和data0-data7也会被host controller和device controller配置好,进行多位宽数据传输。在EMMC内部,对data1-data7 信号进行上拉,一旦进入4线传输模式时,data1,2,3的上拉配置会断开,实现4线数据传输,8线同理,当进入8线传输模式时,data1,2,3,4,5,6,7的上拉会被断开,进入8线数据传输模式。
如下图表2描述了EMMC信号接口
EMMC 信号接口
每一个EMMC都有寄存器指令集合
EMMC 寄存器
host 可以通过以下方式重置设备:
- 关闭电源并重新打开。设备应具有自己的电源打开检测在通电后将设备置于定义状态的电路。
-2. 复位信号
3. 通过发送特殊命令
5.3.1 Bus Protocol 总线协议
根据该标准,EMMC上电复位后,主机须通过基于e•MMC总线的特殊指令初始化设备,协议每条消息均由以下token表示:
- 命令:命令是启动环节的决定性条件。命令从host发送,经CMD信号线上以串行方式传输至device。
2. 响应:响应是从设备发送到主机的token,响应由device发送,经CMD信号线以串行方式传输至host。
3. 数据:数据可以从device传输到host,也可从host传输至device。数据传输有三种方式——1线,4线和8线。
同时,每一种数据线有两种传输方式传输1bit 数据,分别是单倍数据速率(一个周期内只使用上升沿传输)和双倍速率传输(一个周期内上升沿和下降沿均传输数据)
设备寻址是通过会话地址实现的,在初始化阶段,该地址由总线控制器连接到所连接的设备,进而host通过CID识别device,该方式的前提是EMMC具有唯一的CID编号。为了确保CID的唯一性,CID寄存器包含24位(MID和OID字段组成,祥见7.2),CID编号由JEDEC/MMCA进行定义,当制造商生产EMMC后,需要为其申请唯一的MID(和可选的OID)号码。
CID:Device IDentification number 设备识别ID
MID:Manufacturer ID 制造商ID
OEM/Application ID : 原始设备制造商/应用程序 ID
EMMC 总线传输的数据由命令,响应,以及数据块的结构令牌构成,传输一个数据就是一次总线操作,操作中包含命令和响应令牌,此外,一些数据还含有数据令牌。
EMMC 命令是面向数据块的命令,命令发送后,携带有CRC校验位的数据块经过数据总线发送,且在读和写操作中都允许单个数据块或多个数据块传输。与顺序读取方式类似,当发送停止传输的命令时,会停止数据传输。
在对block写操作期间,引入了一种busy状态,一般当EMMC处理程序时候,会使data line处于busy状态,如图3所示
多block 写入操作
在 Host 与 eMMC Device 的交互期间,会存在不需要进行数据传输以及不需要 eMMC响应的情况。
数据线无响应无数据传输状态
命令令牌遵循如下编码方式
命令编码格式
每一条命令令牌长度为48位,第一个bit都是0,接着是1,接着是命令内容(包括具体指令,以及地址相关信息或者指定参数),紧接着是7位CRC校验,最后一位以1结尾。
而在响应令牌有五种格式,会根据不同的命令做对应的格式,其响应有48位和136位两种编码,命令细节见参考6.10和6.12章节。
EMMC中通过block访问数据,顺序数据传输方式中没有预定义的结尾,也就没有CRC校验,此时的校验值以0填充。
注:CRC校验算法是一种多项式运算,
4线双倍速率模式
8线双倍速率模式
8线双倍速率HS400模式
DDR 52 表示 双倍速率模式下的时钟频率不超过52MHz
高速400模式下的CRC校验
EMMC中定义了一下速度模式,见表4
表4 EMMC 相关的工作模式
HS200总线模式:
- 使用单倍速率采样方式
2. 时钟频率最高为200MHz,单倍传输模式下,数据传输速度为200MB/s
3. 支持4线和8线数据位宽,
4. 具有4个驱动强度的单端采样等级
5. 单路电压值为1V8和1V2
6. 读取数据操作时,引入了tunning
图12 介绍了典型的HS200工作模式下,host-device系统,其中host端有时钟发生器,并由host端传输至device端。在写操作时候,忽略延时因素,理论上时钟和数据传输保持同步,且方向一致。然而读操作时,时钟和数据方向相反,host为数据接收端,host接收的读取数据延迟时间包括被host和device的交互时间、device输出延迟和时间,所以呢,需要在读操作过程中进行tunning, 找到合适的采样点,从而保证host接收到的数据正确。
HS200模式下的host-device框图
5.3.5 HS200 模式host寻找合适采样点:
host 可以发送CMD21命令读取tunning block内容,来调整采样点来保证采到正确的数据,而且在器件内部,存在预定义的block 主要用于host在特殊情况下寻找合适的数据采样点采样数据。
5.3.6 HS400总线模式
该模式具有一下特点:
- 双倍速率采样方式
- 时钟频率最高达200MHz,在双倍速率模式下,数据传输速率可到达400MB/s。
- 仅支持8线数据宽度
- 信号电平为1V8和1V2
- 支持5中驱动强度
- 数据选通信号(DQS)只在数据输出、CRC响应和CMD响应环节进行状态切换
5.3.7 HS400 系统框图
图13 描述了一种典型的HS400host-device系统框图,其中host中存在时钟发生器,时钟信号通过host传输至device,在读操作中,数据片选信号经device的输出电路发出。当DQS信号启用,host端会保证DQ和DQS信号对齐,进行后续数据接收,CRC校验,以及对CMD命令做出响应。
HS 400模式下,host-device功能框图