Emmc系列(一)--------基本概念

目录

1. 名词解释

2. 系统框架

 3. 模块

 3.1 Emmc控制器

 3.2 Emmc设备

4. 总结


1. 名词解释

        Emmc:Embedded Multi-Media Card,嵌入式多媒体卡。

在工程技术领域,会引入Emmc设备、Emmc控制器、Emmc协议这些概念。

        Emmc设备:遵循Emmc通信协议的设备(通常是一个芯片);

        Emmc控制器:实现Emmc协议的控制器;

        Emmc协议:由MMC协会订立,符合JEDEC标准,主要针对手机或平板电脑等产品的内嵌式存储器标准规格。

2. 系统框架

        Host顾名思义就是指主机,而Emmc设备则是作为从设备挂在主机侧,从而作为主机的从设备。这点有几点需要说明:

        1)Emmc设备只能由主机控制器来发起操作,Emmc设备自身不具备自举的能力;

        2)主机控制器是作为soc的外设,挂在CPU的总线上,由CPU来进行配置操作;

        3)Emmc设备上也有一个设备控制器,既然是控制器,必然也有相应的寄存器,设备控制器的寄存器是通过主机控制器发送命令来进行配置;

        4)Emmc主机控制器与Emmc设备之间通过命令来交互,命令可以简化为一定格式的字符串,Emmc控制器发送字符串,Emmc设备去解析字符串,并执行相应的操作。

 3. 模块

 3.1 Emmc控制器

        Emmc控制器的IP厂家主要有synopsis、arm、cadence、arasan等,为什么会有这么多厂家呢?其实很容易理解,虽然Emmc协议是由协会起草发布的,作为一种公认的标准,但这个协议定义了控制器与设备之间的通信格式,而控制器如何发出这个符合标准通信格式的命令,就不归JEDEC标准管制了。例如:

        A厂家采取32个寄存器来实现控制器发送数据;

        B厂家采取40个寄存器来实现控制器发送数据;

        虽然最终AB两个厂家设计的控制器都能发出符合Emmc协议的命令,但在控制器设计端有所区别,因此才会有各种厂家的Emmc的IP核。(IP核就是利用硬件描述语言(verilog/VHDL)实现由寄存器转换为电信号的封装)

下面以synopsis和arasan两个厂家的IP展示下Emmc控制器的架构

  • synopsis的Emmc控制器

  • arasan的Emmc控制器

        从上面两个图可以看出,有一些模块是共同的,比喻说DMA模块、FIFO模块、IO引脚、与主机的interface。

        DMA模块主要是用来emmc控制器与内存之间的数据传输,由于emmc协议的速率越来越高,带来的传输数据量越来越大,如果采用内存拷贝,将会带来非常的CPU开销,因此现在Emmc控制器内部都集成了DMA控制器,当然,也有一些Emmc控制器内部不集成DMA,而是利用外部通用DMA来进行数据传输。

        FIFO模块主要是用来作为外部Emmc设备与内存之间缓存,主要是为了解决外部Emmc设备与内存之间速率不匹配的问题。Emmc协议支持的最高速率为400MHz,与cpu访问内存之间的速率还存在相当大的差距,因此内存--Emmc设备读写数据速率与cpu--内存读写速率无法保持一致,在对于流式(数据以数据流的形式,流式是相对于突发而言)的通信场景下,必然会导致数据错误和丢包现象,因此增加了FIFO机制来保证速率的同步。那FIFO又是如何解决速率不匹配的问题呢?FIFO都会有对应的深度,设置一个FIFO阈值,通常为FIFO深度的一半。对于从Emmc设备读取数据,当FIFO中的数据达到阈值时,就认为收据需要读取,这时候将数据从FIFO读到内存中。对于写数据到Emmc设备,当写入FIFO的数据达到阈值时,就暂时停止写入操作,待FIFO中的数据传输到Emmc设备中后,再次启动后面的发送操作。

        IO引脚就是Emmc控制器的信号绑定的SOC的IO引脚,对于Emmc控制器,必然有数据线、时钟线等,而这些线必然要通过SOC的IO引脚与Emmc设备相连。

        与主机的interface就是控制器与CPU的接口,CPU需要通过interface来访问和控制Emmc控制器,从而间接控制Emmc控制器发出的命令。

 3.2 Emmc设备

        Emmc设备就是符合Emmc协议的设备,通常指一种符合Emmc协议的存储芯片。Emmc芯片规范如下:

         从上图可以看出,Emmc设备也是一个子系统,包含有控制器和存储颗粒。存储颗粒就是常见的 FLASH,引入设备控制器的目的就是为了简化SOC内部集成FLASH的复杂度,相当于Emmc设备将 FLASH控制器集成在Emmc设备上,由FLASH控制器完成FLASH的擦除、错误检测等操作,简化了soc的设计难度。不知道大家是否有这样一个疑惑,既然Emmc设备集成了FLASH控制器,那如果Emmc设备提供了CPU可访问的接口,那CPU是不是可以直接访问Emmc设备,而无需借助Emmc控制器来访问Emmc设备呢?个人理解是可以的,但这与mmc设计的出发点冲突,估计不会有人去这样做。

4. 总结

        Emmc主机控制器发送命令来控制Emmc设备,通信协议符合JEDEC指定的标准。主机控制器的最终目的就是发出符合标准协议规定的命令,Emmc设备接收到符合标准协议的命令,执行对应的操作,将数据写入存储颗粒,或者从存储颗粒将数据读出并发回主机控制器。

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值