6.7 Dataset Management command

6.7 Dataset Management command 数据集管理命令

主机使用数据集管理命令来指示逻辑块范围的属性。这包括诸如读取或写入数据的频率、访问大小等属性,以及可用于优化性能和可靠性的其他信息。此命令是建议性的;合规控制器可以根据提供的信息选择不采取任何操作。

命令使用命令Dword 10和命令Dword 11字段。如果命令使用PRPs进行数据传输,则使用PRP Entry 1和PRP Entry 2字段。如果命令使用SGLs进行数据传输,则使用SGL Entry 1字段。保留所有其他特定于命令的字段。
在这里插入图片描述如果支持Dataset管理命令,则可以设置图365中指定的所有属性组合。
数据集管理命令提供的数据是具有上下文属性的范围列表。每个范围都包含一个起始LBA、该范围包含的逻辑块长度以及要应用于该范围的上下文属性。“逻辑块中的长度”字段是基于1的值。Dataset管理命令范围字段的定义如图366所示。显示了256个范围的最大情况:
在这里插入图片描述6.7.1 Context Attributes 上下文属性
为每个范围指定的上下文属性提供有关主机软件打算如何使用该范围的信息。此信息的使用是可选的,控制器无需执行任何特定操作。
注:无论主机软件提供的属性是否准确,控制器都需要保持NVM介质上数据的完整性。
在这里插入图片描述6.7.1.1 Deallocate 解除分配

使用数据集管理命令解除分配的逻辑块在写入逻辑块时不再解除分配。读取操作和验证操作不会影响逻辑块的释放状态。从解除分配的逻辑块读取的值应是确定性的;具体而言,该逻辑块的后续读取返回的值应相同,直到该逻辑块发生写入操作为止。

从解除分配的逻辑块及其元数据(不包括保护信息)读取的值应全部清除为0h(例如,DLFEAT字段中的位2:0设置为001b),所有字节设置为FFh(例如,DLFEAT字段中的位2:0设置为010b),或最后写入相关逻辑块及其元数据的数据,但以下情况除外:禁止访问最近成功的清理操作(如果有)之前写入的所有数据和元数据值。Identify Namespace数据结构(请参阅图245)中的Deallocate Logical Block Features(DLFEAT)字段可以报告从解除分配的逻辑块及其元数据读取的值。

从解除分配或未写入逻辑块的保护信息字段中读取的值应:

  • 将保护字段值设置为FFFFh或将从解除分配的逻辑块及其元数据(不包括保护信息)读取的值设置为CRC(例如,如果读取的值全部字节清除为0h,则清除为0h);以及
  • 将应用标签字段值设置为FFFFh,将参考标签字段值设置为FFFFFFFFh(表示不应检查保护信息)。

使用错误恢复功能(请参阅第5.21.1.5节),主机软件可以在读取未分配或未写入的逻辑块时使错误返回。如果命名空间支持并启用了此错误,则包含已解除分配或未写入逻辑块的读取、验证或比较命令将失败,并显示未写入或已解除分配逻辑块状态代码。注意:对于这种情况,传统软件可能无法处理错误。
注意:Deallocate函数的操作类似于ACS-4中描述的具有Trim功能的ATA数据集管理和SBC-3中描述的SCSI UNMAP命令。

6.7.2 Command Completion

当命令完成时,控制器应将完成队列条目发布到相关的I/O完成队列,指示命令的状态。
数据集管理命令特定的状态值如图368所示。在这里插入图片描述
Dataset Management command可以通过设置Dword 11的Attribute-Deallocate(AD)字段deallocate一定范围的LBA,deallocate也就是通常所说的Trim。SSD收到AD字段为1的Dataset Management command后,会将相应范围的LBA Trim掉。如果Host针对被Trim的地址发送read命令,SSD应该返回全1,全0或者最后写入的数据。如果使能了deallocated 或 unwritten logical block error,当Host读取被deallocate区域时,SSD会返回该命令失败并且错误为unwritten或者deallocated logical block error

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值