JESD B5.1 EMMC协议介绍(十五)

本文详细介绍了EMMC动态容量管理机制,该机制允许EMMC在检测到磨损块时调整报告容量,确保设备持续工作。主机通过CMD6启用此功能,并通过EXT_CSD寄存器监控实际容量。同时,讨论了大扇区容量,包括本地扇区大小的报告和仿真模式的禁用,强调了4KB扇区的行为和限制,以及实时时钟信息和周期性唤醒功能的重要性。
摘要由CSDN通过智能技术生成

6.6.33 Dynamic Capacity Management 动态容量管理

/*

动态容量管理是一种功能,允许EMMC动态调整其报告的容量。当EMMC有磨损块并需要重新分配备用块来替换它们时,此功能非常有用。使用动态容量管理,当检测到磨损块时,EMMC可以向host报告降低的容量,然后重新分配备用块来替换它们。这使得EMMC即使具有磨损块的情况下,仍然可以继续工作,而不会导致任何数据丢失或损坏。

要使用动态容量管理,host必须使用下发带有特殊参数的CMD6命令从而启用此功能。接着,EMMC将监视其块的磨损程度,并相应调整其报告的容量。EMMC还将通过ext_csd寄存器提供有关实际容量和磨损块数量的信息。

值得注意的是,动态容量管理可能会导致EMMC的报告容量随时间波动。这是正常行为,不表示EMMC出现任何故障。

*/

大量的内存使用和Flash的老化可能会导致坏块。动态容量管理为EMMC提供了一种机制,可以减少其报告的容量并延长设备的使用寿命。

操作动态容量的机制基于内存阵列分区和WP组的粒度(见6.14章节)。

通过释放用户区域地址空间内的任何WP组来减少容量。释放的WP组将成为永久写保护组,不得对其进行读取:写入释放的WP组中的地址将返回WP错误;从释放的WP组中的地址读取是被禁止的,可能会返回错误;

使用CMD30检查写保护和使用CMD31检查写保护类型时,应相应地说明受保护的组和永久写保护的方式。

释放写保护组的前提是在释放之前必须先取消保护,才能被释放掉。且通用分区的写保护组也不能被释放 - 只有来自用户区域的组可以被释放。

EMMC在ext_csd寄存器的第58字节中保留指示DYNCAP_NEEDED功能,以通知host需要释放多少个WP组。host应监视此字节并释放所请求的WP组,以使EMMC继续正常工作。

如果EMMC报告非零的DYNCAP_NEEDED,而host没有相应地释放WP组,则EMMC的性能可能会降低,最终变得无法正常工作。

此外,如果host将值“1”写入EXCEPTION_EVENTS_CTRL的DYNCAP_EVENT_EN,可以报告DYNCAP_NEEDED的状态的异常事件位。一旦启用,EMMC状态中的异常位(在每个R1响应中报告)应设置为非零的DYNCAP_NEEDED。

为了释放WP组并查询组的状态,host应首先将EXT_CSD字节[59]中的CLASS_6_CTRL设置为0x01(参见表174),然后使用类6命令(CMD28-31)来释放和/或查询WP组的状态。在使用类6命令进行写保护操作之前,host应将CLASS_6_CTRL设置为0x00。

当CLASS_6_CTRL设置为0x01时:

- CMD28用于释放WP组

- CMD29被忽略(无操作)

- CMD30返回已释放或未释放WP组的状态

- CMD31返回一个固定的64位零模式

动态容量命令和状态仅适用于大容量EMMC,并基于大容量写保护组的大小。

EMMC内部用户区域的大小在通电时不应更改,即使从用户区

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南风轻拂_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值