随着智能设备的普及,许多人开始对eMMC有一定的了解。然而,也有小伙伴反映,现在很多讲eMMC的文章,一上来就开始列概念,看了半天依然也没搞懂它究竟是个什么玩意儿。所以宏旺半导体想跟大家详细地讲讲,eMMC长什么样、用在哪、主要是干嘛用的。
众所周知,闪存Flash的制程和技术变化很快,特别是TLC技术和制程下降到20nm阶段后,对Flash的管理是个巨大挑战。使用eMMC产品,主芯片厂商和客户就无需关注Flash内部的制成和产品变化,只要通过eMMC的标准接口来管理闪存就可以了。
宏旺半导体之前说过,eMMC的设计概念,就是为了简化手机内存储器的使用,将NAND Flash芯片和控制芯片设计成1颗MCP芯片,手机客户只需要采购eMMC芯片,放进新手机中,不需处理其它繁复的NAND Flash兼容性和管理问题,最大优点是缩短新产品的上市周期和研发成本,加速产品的推陈出新速度。
因而,eMMC目前成为了当红的移动设备本地存储解决方案之一,宏旺半导体推出的eMMC可以很好的解决对MLC和TLC的管理,ECC除错机制、区块管理、平均抹写储存区块技术、区块管理、低功耗管理等。
这些年来,eMMC规格的标准快速演进,从eMMC V4.3发展到V4.4,V4.41,eMMC V4.5陆续问世,宏旺半导体了解到,目前市面上eMMC较为流行的版本是2015年发布的eMMC5.1,最高速度是400MB/s。eMMC会持续改版至4.5版,之后由UFS 1.0版接手。我们将UFS视为一种衔接eMMC 4.5版后的NAND Flash新接口标准,预期未来初期将在智能型手机及平板计算机等新兴智能型移动装置上,成为嵌入式储存媒体的主要的应用标准之一时降低功耗。
那eMMC究竟是如何工作的呢?系统上电后,在eMMC能进行正常读写之前,必须按照协议规定的步骤完成初始化。 初始化过程如下:
① 复位进入Idle State的方式有两种:一种是通过Power On即上电进入,另外一种是通过发送命令CMD0。复位之后所有的寄存器都复位成默认值,此时CLK需要设置成fOD的范围,即0~400 kHz。
② 在Idle State发送命令CMD1,如果eMMC寄存器OCR回复值中的busy位为0,则上电复位仍未完成,需要一直发送命令CMD1,直到busy位为1且电压匹配,则进入Ready State。
③ 在Ready State发送命令CMD2,如果命令发送成功,则得到CID寄存器的值,而eMMC进入Identification State,若不成功,则eMMC状态不变。
④ 在Identification State发送命令CMD3,完成RCA地址分配,其中多片eMMC依靠分配不同的RCA地址来区分,进入Standby State,当eMMC芯片进入Standby State,不再响应命令CMD1、CMD2和CMD3。
⑤ 在Standby State,首先发送命令CMD9,获取设备寄存器CSD的值,可以得到如块长度、存储容量、最大时钟速率等。然后发送命令CMD7,通过参数中包含设备已分配的相对地址来选定设备,进入Transfer State。
⑥ 在Transfer State发送命令CMD6,其中包含切换工作速率的参数,将eMMC初始化低速时钟切换到正常工作的高速时钟。再次发送命令CMD6,其中包含数据位宽和单双沿模式的参数,默认模式是一位数据位宽和单沿模式,转换数据位宽和单双沿模式,此时eMMC停留在Transfer State,初始化工作全部完成。eMMC初始化流程图如图1所示。
随着NAND技术发展成各种更加专门的解决方案,eMMC将获得更大的增长动能。它带来了多个供应商之间的兼容性、长期支持和可接受的成本。宏旺半导体未来将推出高可靠性与性能的存储产品,欢迎大家关注或咨询。