eMMC 存储系统由主机、外部接口和 eMMC 设备三大部分组成 [36] ,如图 2-1 所示。
其中,本设计采用FPGA作为主机对eMMC设备进行访问控制;外部接口为标准的MMC
封装接口;eMMC 设备内部集成了 NAND Flash 控制器和 NAND Flash 存储阵列,其中
NAND Flash 控制器代替了外部控制器对 MLC 和 TLC 进行管理,同时还具备 ECC 除错
机制、擦写均衡、坏块管理、指令管理、低功耗管理等功能 [37]
在 eMMC5.1 协议中,仅对外部接口模块和内部控制器的功能和时序作了统一的规
定,但对于内部的存储阵列以及外部的控制器则没有什么限制,既方便了用户的使用,
又不影响厂商根据自身技术改进内部存储阵列工艺 [38] 。
eMMC 外部接口仅有十一根数据总线,包括一根时钟线,一根命令线,八根数据线
和一根数据选通线,其定义如下:
CLK:时钟信号线,由 FPGA 提供,用于 FPGA 控制模块与 eMMC 设备之间的通
信或者数据传输。对于命令线,每个时钟周期进行一位命令或应答的传输;而对于所有
数据线,每个时钟周期可对应 1bit 数据(SDR 模式下)或 2bit 数据(DDR 模式下)传
输,在 DDR 模式下每个时钟周期的上升沿和下降沿均传输 1bit 数据。
CMD:双向命令线,用于向 eMMC 发送命令或者接收响应。CMD 信号有两种操作
模式:用于初始化模式的开漏和用于快速命令传输的推拉。命令从 eMMC 主机控制器
发送到 eMMC 设备,响应从设备发送到主机。
DAT0-DAT7:双向数据信号线。数据信号在推挽模式下工作。默认情况下,通电或
复位后,只有 DAT0 用于数据传输。eMMC 主机控制器可以使用 DAT0-DAT3 或 DAT0-
DAT7 为数据传输配置更宽的数据总线。eMMC 设备包括数据线 DAT1-DAT7 的内部上
拉。在进入 4 位模式后,设备立即断开线路 DAT1、DAT2 和 DAT3 的内部上拉。相应
地,在进入 8 位模式后,设备立即断开线路 DAT1–DAT7 的内部上拉。从而实现 4bit 或
8bit 总线数据传输。
Data Strobe: 数据锁存线,该信号由 eMMC 设备产生,用于 HS400 模式下的输出。
这个信号的频率跟在 CLK 的频率之后。对于数据输出,此信号的每个周期指示数据上
的两位传输(2x)——一位用于正边缘,另一位用于负边缘。对于 CRC 状态响应输出
和 CMD 响应输出(仅应用于 HS400 增强选通模式),CRC 状态和 CMD 响应仅锁定在
正边缘,而不锁定在负边缘
AMBA 总线规范灵活性非常高,与处理器的设计无关。同时也不受制造工艺的影
响。AMBA 可以将多种不同的外设与系统连接起来。实现了系统的相互通信,提高了
各部件的重用性。同时,AMBA 总线开放性高,第三方公司或研究机构经 ARM 公司
授权后即可免费获得。其以上特点受到了人们的大力追捧,尤其 ARM 公司的合作伙
伴,更是将 AMBA 总线作为基于 ARM 处理器的 SoC 设计中标准的互联结构。