eMMC Protocol Feature:CMDQ

本文关键字:Nand Flash、eMMC、CMDQ。

 

概述

相关寄存器

相关命令

CMD44+CMD45:Queuing a Transaction

CMD13:Checking the Queue Status

CMD46/CMD47:Execution of a Queued Task

CMD48:Discard Queued Task

Error handling

Supported Commands


概述

(1)Command Queuing:命令队列。就是将一些读写命令排成一个队列, 进行数据传输。队列长度最多为32条,由Device指定。

(2)Device不保证队列任务被处理的顺序,host跟踪队列的状态,决定命令队列的执行顺序,或者Firmware可以通过优化指令的顺序、提前准备数据,从而提高性能和降低损耗。

(3) 发送CMD6(切换分区或禁用命令队列)时,命令队列必须为空。在队列不为空时发送CMD6视为非法命令。

(4)使能cmdq前,block大小必须设置为512Byte,否则Device在收到CMD46/CMD47后,会返回错误。

(5)如果host需要访问RPMB分区,应禁用命令队列机制,并且禁止通过命令队列访问RPMB分区,但是可以通过命令队列访问通用分区。

 

相关寄存器

  • EXT_CSD [308]CMDQ_SUPPORT        Cell Type:R
  • EXT_CSD [15]:CMDQ_MODE_EN        Cell Type:R/W/E_P
  • EXT_CSD[307]: CMDQ_DEPTH            Cell Type:R
  • 32位队列状态寄存器 QSR

承载队列中任务在特定时间点的状态。host可以通过cmd13(bit [15]=1)的响应读取该寄存器,R1的参数将是32位队列状态寄存器(QSR)。QSR中的每一bit表示与位索引相对应的任务ID。如果位QSR[i]=“0”,则具有ID为i的任务未准备好执行。如果位QSR[i]=“1”,则任务ID为i的排队任务已准备好执行。

 

相关命令

fbbb5eab1f7b10d9c5f1052fdbd320f8.png

 

CMD44+CMD45:Queuing a Transaction

(1)host通过发出cmd44+cmd45将数据传输任务排队。cmd44 bit[15:0]Number of blocks单位为sector。

(2)host应确保CMD44中的任务ID在设备队列中尚未使用。

(3)为了将任务排队,必须依次发出cmd44和cmd45。如果在cmd44之后未发出cmd45,则取消排队操作。如果cmd44不成功(例如请求的任务ID已在使用),设备将该命令视为非法,并且不响应。在这种情况下,host不能发cmd45。成功下发cmd45并返回R1响应后,该任务将被视为在设备中排队。只要队列未满,主机就可以使用cmd​44+cmd45流对任意数量的任务进行排队。

(4)当数据正在DAT上传输,或设备处于busy状态(cmd48引起的busy除外)或线路空闲时(例如,NAC期间),可以发cmd44和cmd45。

 

CMD13:Checking the Queue Status

(​1)当bit 15=1时, CMD13用于查看cmdq任务的状态,cmdq任务的状态与response bit[0-31] 一一对应。因为R1只有32位, 只能查看32个任务的状态, 所以CMDQ_DEPTH最大只有31。

(2)当数据正在DAT上传输时,或设备处于busy状态或线路空闲时(例如,NAC期间),可能会发出发送状态。

 

CMD46/CMD47:Execution of a Queued Task

(1)host发出一个CMD46或CMD47去执行先前排队的任务。CMD46用于执行读命令,CMD47用于执行写命令。host只能执行QSR中显示为ready for execution的任务。

(2)如果任务已准备好执行,并且其数据方向与命令索引匹配(CMD46用于读,CMD47用于写),则设备将发出相应的R1响应并开始数据传输。如果有任何错误,设备不会响应,也不会进行数据传输。

(3)对于读任务,最后一个数据块在emmc的总线上传输完成,才叫做读任务完成,设备才能清除任务ID。对于写任务,最后一个数据块的busy信号被释放才能叫做写任务完成,设备才能清除任务ID。

(4)如果在CMD46数据传输期间发出CMD12,则设备将返回传输状态,并且可以认为操作已完成(QSR[i]=1→0)。如果在CMD47数据传输期间发出CMD12,设备进入编程状态,只有当所有传输的数据都已编程时,才能认为操作已完成(QSR[i]=1→0)。

 

CMD48:Discard Queued Task

(1)Bit[3-0] :CMDQ任务管理

Bit[3-0] =1时, 废除所有任务,清掉QSR; 如果队列为空, 执行该命令不会出错。

Bit[3-0] =2时, 废除bit[20-16]指定的单个任务, 如果任务ID不存在, 执行该命令不会报错。

(2)数据传输过程中CMD48不应发出。

 

Error handling

eb8bb575e5a9c88c6051b70ed1707835.png

注:Type X errors:在下一个命令的response中表现当前的错误。

       Type R errors:在当前命令的response中表现当前的错误。

 

Supported Commands

4b7c4968f35ff97a0799b82a11592104.png

(1)当命令队列已启用时,class 11命令集是可以下发数据传输任务的唯一方法,即不支持CMD18/CMD17和CMD25/CMD24。

(2)当任务队列已启用且为空时,host在Trans state仅能发送class11命令集。但是,如果设备处于Trans状态并处理一系列命令(例如,擦除序列),则主机应先完成该序列再发送class11命令。

 

 

 

 

 

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
eMMC (Embedded MultiMedia Card) 为MMC协会所订立的内嵌式存储器标准规格,主要是针对手机产品为主。eMMC的一个明显优势是在封装中集成了一个控制器, 它提供标准接口并管理闪存, 使得手机厂商就能专注于产品开发的其它部分,并缩短向市场推出产品的时间。这些特点对于希望通过缩小光刻尺寸和降低成本的NAND供应商来说,具有同样的重要性。   eMMC的优点   eMMC目前是最当红的移动设备本地存储解决方案,目的在于简化手机存储器的设计,由于NAND Flash 芯片的不同厂牌包括三星、KingMax、东芝(Toshiba) 或海力士(Hynix) 、美光(Micron) 等,入时,都需要根据每家公司的产品和技术特性来重新设计,过去并没有哪个技术能够通用所有厂牌的NAND Flash 芯片。   而每次NAND Flash 制程技术改朝换代,包括70 纳米演进至50 纳米,再演进至40 纳米或30 纳米制程技术,手机客户也都要重新设计, 但半导体产品每1 年制程技术都会推陈出新, 存储器问题也拖累手机新机种推出的速度,因此像eMMC这种把所有存储器和管理NAND Flash 的控制芯片都包在1 颗MCP上的概念,逐渐风行起来。   eMMC的设计概念,就是为了简化手机内存储器的使用,将NAND Flash 芯片和控制芯片设计成1 颗MCP芯片,手机客户只需要采购eMMC芯片,放进新手机中,不需处理其它繁复的NAND Flash 兼容性和管理问题,最大优点是缩短新产品的上市周期和研发成本,加速产品的推陈出新速度。   闪存Flash 的制程和技术变化很快,特别是TLC 技术和制程下降到20nm阶段后,对Flash 的管理是个巨大挑战,使用eMMC产品,主芯片厂商和客户就无需关注Flash 内部的制成和产品变化,只要通过eMMC的标准接口来管理闪存就可以了。这样可以大大的降低产品开发的难度和加快产品上市时间。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值