Write Zeroes

6.17 Write Zeroes command

    “Write Zeroes”命令用于将逻辑块范围设置为零。该命令相关的NON-PI metadata(存在保护信息以外的元数据。)应将所有字节清为0h。写入到介质的逻辑块的保护信息会基于CDW12.PRINFO更新。若Protection Information Action bit (PRACT)被清除为“ 0”,则该命令的保护信息应全为零。如果Protection Information Action bit (PRACT)设置为“ 1”,则保护信息应基于“Identify Namespace”数据结构中的End-to-end Data Protection Type Settings(DPS)字段(请参见图245),以及“write zeroes”命令中的CDW15.EILBRT,CDW15.ELBATM和CDW15.ELBAT字段。

    成功完成此命令后,此范围内逻辑块的后续读取返回的值应全部清除为0h,直到对该LBA范围进行写操作为止。

    如果在Write Zeroes命令中将Deallocate位(CDW12.DEAC)设置为“ 1”,并且命名空间支持将从已释放的逻辑块及其元数据(不包括保护信息)读的值(例如DLFEAT字段中的位2:0设置为001b)中的所有字节清除为0h,然后对于每个指定的逻辑块,控制器:

        •可以释放该逻辑块;

        •应返回从以下读取的值中所有清零的字节:

          o该逻辑块;

          o该逻辑块的元数据(不包括保护信息);

        •应基于该Write Zeroes命令中的CDW12.PRINFO在该逻辑块中返回保护信息。

    如果在Write Zeroes命令中将Deallocate位清除为'0',从释放的Logical block读到的值和它的metadata, namespace支持清空所有的bytes为0(例如,将DLFEAT字段中的位2:0设置为001b) 及其元数据(不包括保护信息),然后对于每个指定的逻辑块,控制器:

        •可以释放该逻辑块;

        •应返回从以下值读取的值中所有清零的字节:

          o该逻辑块;

          o逻辑阻止元数据(不包括保护信息);

        •应基于该Write Zeroes命令中的CDW12.PRINFO在该逻辑块中返回保护信息。

    对于由Write Zeroes命令指定范围内的每个逻辑块,如果namespace不支持该逻辑块,则将从该逻辑块读取的值及其元数据(不包括保护信息)的所有字节清除为0h,控制器 不得释放该逻辑块。

    使用的字段是“Command Dword10”,“Command Dword11”,“Command Dword 12”,“Command Dword 14”和“Command Dword 15”字段。

Figure 410:Write Zeroes – Command Dword 10 and Command Dword 11

Bits

描述

63:00

Starting LBA(SLBA):这个字段指示了要作为操作一部分写入的第一个逻辑块的64位地址。

Command Dword 10 contains bits 31:00; Command Dword 11 contains bits 63:32.

Figure 411:Write Zeroes – Command Dword 12

Bits

描述

31

Limited Retry (LR):

如果设置为“ 1”,则控制器应进行有限的重试。 如果将其清除为“ 0”,则控制器将应用所有可用的错误恢复手段将数据写入NVM。

30

Force Unit Access (FUA): 如果设置为“ 1”,则控制器应在指示命令完成之前将数据和元数据(如有)写入非易失性介质。

其他命令没有隐含的顺序。 如果清除为0,则该位无效。

29:26

Protection Information Field (PRINFO): 指定保护信息操作和检查字段,如355中所定义。保护信息检查(PRCHK)字段应清除为000b。

25

Deallocate (DEAC): 如果设置为“ 1”,则主机正在请求控制器释放指定的逻辑块。 如果将其清除为“ 0”,则主机不请求控制器释放指定的逻辑块。

24:16

保留字段

15:00

Number of Logical Blocks (NLB):

该字段指示要写入的逻辑块的数量。 这是一个基于0的值。

Figure 412:Write Zeroes – Command Dword 14

Bits

描述

31:00

nitial Logical Block Reference Tag (ILBRT):

该字段指示初始

Logical Block Reference Tag

值。 仅当namespace的格式设置为使用端到端保护信息时,才使用此字段。 请参阅第8.3节。

Figure 413:Write Zeroes – Command Dword 15

Bits

描述

31:16

Logical Block Application Tag Mask (LBATM):

表示Application Tag Mask 的值,仅当namespace的格式设置为使用端到端保护信息时,才使用此字段。 请参阅第8.3节。

15:00

Logical Block Application Tag (LBAT):

表示Application Tag 值,仅当namespace的格式设置为使用端到端保护信息时,才使用此字段。 请参阅第8.3节。

6.17.1 Command Completion

完成“Write Zeroes”命令后,控制器应将完成队列条目发布到关联的I / O完成队列中,以指示该命令的状态。

Write Zeroes命令的特定状态值在图414中定义。

Figure 214:Write Zeroes – Command Specific Status Values

Bits

描述

81h

Invalid Protection Information:

该命令中指定的Protection Information Field (PRINFO)(请参阅图411)设置对于格式化了namespace的保护信息无效(请参阅图328中的PI字段和图245中的DPS字段)或ILBRT无效 字段无效(请参阅第8.3.1.5节)。

82h

Attempted Write to Read Only Range:

指定的LBA范围包含只读块。 如果介质上的只读是名称空间的写保护状态更改的结果,则控制器不得返回此状态值(请参阅第8.19节)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值