ufs2.2 协议扫盲(二十一)
作者:互联网
13.4.11 Exception Events Mechanism
设备使用异常事件机制向主机报告某些事件的发生。
它由三个组件组成:EVENT_ALERT bit, the wExceptionEventStatus attribute and
wExceptionEventControl attribute:
wExceptionEventStatus属性中的一位被分配给每个异常事件。当相应的异常事件激活时,设备应将wExceptionEventStatus位设置为1,否则应设置为0.
wExceptionEventControl 属性中的一位被分配给每个异常事件。如果至少有一对wExceptionEventStatus位和wExceptionEventControl 位设置为一,则应设置EVENT_ALERT bit。如果wExceptionEventControl 位的对应位为零,则将wExceptionEventStatus位设置为1不会强制将EVENT_ALERT bit设置为1。
EVENT_ALERT是RESPONSE UPIU的设备信息字段中的一个位,它是wExceptionEventStatus中被wExceptionEventControl 位屏蔽的所有位的逻辑OR。当设置了wExceptionEventStatus中的至少一位且相应的wExceptionEventControl 位为一时,EVENT_ALERT位设置为一。如果在wExceptionEventControl 中启用的所有异常事件均未激活,则EVENT_ALERT将设置为零。
有四个定义的异常事件:动态设备容量、系统池耗尽、后台操作和writebooter缓冲区刷新。与这些异常关联的wExceptionEventStatus中的位
events are described in the following:
DYNCAP_NEEDED – 设备请求动态容量操作(见13.4.6,动态设备容量)。一旦动态容量操作成功完成,释放设备请求释放的全部容量,就会清除该位。
SYSPOOL_EXHAUSTED – 设备资源不足,无法将更多主机数据作为系统数据处理(请参阅13.4.10,系统数据标记机制)。一旦主机将以前作为系统数据区处理的足够内存区转为非系统数据区,该位将被清除。
URGENT_BKOPS – 设备要求主机注意后台操作的需求级别(见13.4.4,后台操作模式)。一旦bBackgroundOpStatus返回到00h或01h,该位将被清除。
WRITEBOOSTER_FLUSH_NEEDED – WriteBooster的缓冲区需要刷新。主机应通过将fWriteBoosterBufferFlushEn设置为“1”来发出刷新命令。
在RESPONSE UPIU的Device Information字段中,设备将仅指示主机通过写入wExceptionEventControl 属性启用的事件。当满足清除条件时,设备将清除wExceptionEventStatus属性的事件位和RESPONSE UPIU的设备信息字段中的事件位。
每个逻辑单元负责管理自己的任务集。独立于任务集,用于为任务排队的资源可以静态地分配给每个LU,以便LU能够将新任务排队到一定深度,或者由所有LU共享,以便根据接收到的任务动态地将排队资源分配给LU。设备可以实现上述两种排队体系结构之一。设备通知主机软件使用设备描述符和单元描述符中的只读参数实现的策略。队列的深度定义为可以存储在队列中的挂起命令的数量。 13.4.12.1 Shared Queue
在共享队列体系结构中,设备有一个固定深度的队列,任务在接收时排队,而不管它们的LUN指定如何。当接收到COMMAND UPIU时,将从共享队列分配资源,并将该命令计入队列深度限制。主机应该跟踪队列深度,并且不会发出超过队列中存储的命令。如果队列资源不可用,设备应返回任务集已满状态的响应( TASK SET FULL)。
QUERY REQUEST UPIUs, NOP OUT UPIUs, and TASK MANAGEMENT REQUEST UPIUs不存储在共享队列中。
当实现这种排队体系结构时,设备描述符中的参数bQueueDepth应指示队列的深度。bQuueDepth的值应等于或大于1。所有单元描述符中的 bLUQueueDepth参数均应等于0.
13.4.12.2 Per-Logical Unit Queues
在per-LU排队体系结构中,设备实现单独的固定深度队列,每个LU一个队列,或者换句话说,为每个LU分配固定数量的排队资源。
收到 COMMAND UPIU时,将从与其逻辑单元关联的队列中分配资源,如UPIU头中的LUN字段所示。该命令将计入相应队列的深度限制。主机需要跟踪队列深度,并且不会发出超过其指定队列中存储的命令。如果资源不可用于已分配的LU,设备应返回一个任务集已满状态的响应(即使排队资源可用于其他LU)。
QUERY REQUEST UPIUs, NOP OUT UPIUs, and TASK MANAGEMENT REQUEST UPIUs不存储在共享队列中。 13.4.13 Device Life Span Mode
这种模式的目的是通过增加设备的耐久性来提高设备的寿命。设备使用磨损均衡等机制来提高设备寿命,该寿命仅限于内存供应商给出的P/E周期计数。在这种模式下,设备可以使用较低的编程电压等技术进行操作,以增加P/E循环计数,从而提高设备寿命。
UFS中的读写操作性能非常高,但并不总是要求最高操作速度,例如,当用户睡觉时,设备处于屏幕关闭模式,下载大文件/视频等。在这种情况下,UFS主机可能会通过启用fDeviceLifeSpanModeEn标志,向设备指示使用较低编程电压等技术进行操作。禁用此标志时,设备使用正常电压进行操作。一旦标志被禁用,预计设备将正常响应。
此模式下可能会出现性能下降,因此only when the device is not actively used,才应设置fDeviceLifeSpanModeEn设备寿命的提高取决于设备的实现 13.4.13.1 Implementation
fDeviceLifeSpanModeEn 是用于启用或禁用像操作的较低编程电压技术执行的标志。 0 = Device Life Span Mode is disabled. 1 = Device Life Span Mode is enabled.
此标志的默认值为零。主机可以根据屏幕关闭、下载大文件等情况启用此标志。
标签:wExceptionEventStatus,队列,主机,二十一,扫盲,LU,ufs2.2,13.4,设备 来源: https://blog.csdn.net/haoyun1990/article/details/123182761