UFS 4.0 数据发送规则

UFS协议中数据输出命令的例子有:MODE SELECT (10), WRITE (6), WRITE (10), WRITE (16), FORMAT UNIT, SECURITY PROTOCOL out等。与RTT (READY TO TRANSFER UPIU) 相关的数据输出传输规则定义如下:

数据发送规则1

主机从设备每接收到一个RTT只发送一个DATA OUT UPIU  (如图10.7所示)。

如果Data OUT UPIU中的Data Buffer Offset字段值或Data Transfer Count字段值与RTT请求中的相应参数不匹配,设备将发送带有UTP Data OUT Mismatch Error标志(Flags.D),Status = CHECK CONDITION 和SENSE KEY = ABORTED命令的RESPONSE UPIU来终止该命令。图10.8为数据传输计数不匹配的情况。

数据发送规则2

设备未完成的RTT不得超过主机规定数值。

bDeviceRTTCap read-only设备描述符参数定义了设备可支持的未完成rtt的最大数量。bMaxNumOfRTT读写属性限制了设备生成的未完成rtt的数量(bMaxNumOfRTT出厂设置为2),主机可以根据性能需要对其进行更改。bMaxNumOfRTT值不能设置为大于bDeviceRTTCap值,且只能在所有逻辑单元的命令队列为空时设置。

如果主机试图写入高于bDeviceRTTCap指示的值时,bMaxNumOfRTT值无法被修改且QUERY RESPONSE UPIU将QUERY RESPONSE字段设置为“Invalid value”。

如果主机试图写bMaxNumOfRTT时,至少有一个逻辑单元命令队列不为空,则操作失败,Query Response UPIU中的Query Response字段设置为FFh(“General failure”)。

图10.9为bMaxNumOfRTT = 2情况下与写命令处理相关的示例。Target设备发送RTT UPIU1和RTT UPIU2, Initiator设备开始提供与第一个请求相关的数据。有两个未完成的RTT (RTT UPIU1和RTT UPIU2),因此目标设备不能发送额外的RTT UPIU。目标设备只有在接收到data OUT UPIU1后才会发送第三次数据请求(RTT UPIU3)。

数据发送规则3

在所有逻辑单元中,DATA OUT UPIU应以与RTT以相同的顺序发送:RTT(N)的数据应在传输RTT(N+1)的数据之前传输。

如图10.9,如果主机先从设备接收到RTT UPIU1,然后再从设备接收到RTT UPIU2,那么它应该先发送第一个请求(Data1)的相关数据,然后再发送第二个请求(Data2)的相关数据。基于此,设备可以根据逻辑单元优先级、命令优先级、内部优化等确定RTT的发送顺序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值