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节)。

Write Zeroes相关推荐

  1. 172. Factorial Trailing Zeroes

    /**172. Factorial Trailing Zeroes *2016-6-4 by Mingyang* 首先别忘了什么是factorial,就是阶乘.那么很容易想到需要统计* (2,5)对的 ...

  2. pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)

    pandas将列表list插入到dataframe的单元格中.pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes) 目录

  3. [LeetCode] Factorial Trailing Zeroes

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  4. Bash: Removing leading zeroes from a variable

    old="0004937" # sed removes leading zeroes from stdin new=$(echo $old | sed 's/^0*//') 转载于 ...

  5. b. Suffix Zeroes

    b: Suffix Zeroes Time Limit: 1 Sec  Memory Limit: 128 MB Description 这个游戏超休闲的~.现在你需要找一个自然数n,你找的自然数需要 ...

  6. Factorial Trailing Zeroes

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  7. Set Matrix Zeroes

    Set Matrix Zeroes Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do i ...

  8. [LintCode] Trailing Zeroes 末尾零的个数

    Write an algorithm which computes the number of trailing zeros in n factorial. Have you met this que ...

  9. 【LeetCode】172 - Factorial Trailing Zeroes

    Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...

  10. spring boot报错Invalid numeric value: Leading zeroes not allowed

    场景:用swagger测试接口时,传递的参数中有0开头的,如下: 接口返回结果报错: Invalid numeric value: Leading zeroes not allowed 解决方案:在a ...

最新文章

  1. JXJJOI2018_T1_market
  2. finally代码块和return的执行顺序问题
  3. jmeter参数化之用户参数
  4. java图像处理,彩色图像转灰度图的几种实现方式
  5. 微型计算机接口与技术的交通灯,微机原理及接口技术课程设计交通灯
  6. Java编程思想 4th 第5章 初始化与清理
  7. setInterval()和setTimeout()
  8. C语言实现求斐波那契数列中的第n项
  9. PDF文件怎样修改,怎么修改PDF文件内容
  10. 小程序input绑定输入保存数据
  11. Splines(样条曲线)
  12. 快速入门spring data jpa 2,多表操作,逻辑删除
  13. 51 Best DevOps Tools for #DevOps Engineers
  14. Objective-C runtime机制(5)——iOS 内存管理
  15. 全球及中国贴片电容行业市场竞争态势及投资风险预测报告2022-2028年
  16. [JsHtml]全面清除前端缓存
  17. 天干、地支纪年 月 日
  18. Android帧动画框架
  19. php商城积分兑换商品功能,帮助中心-积分商城的功能详解
  20. 使用 GVM 工具管理 Go 版本

热门文章

  1. 关于 pygame中,检测按键按下
  2. linux安装和使用docker教程
  3. 抢票软件依旧跑得欢 记者25分钟抢两张热门票
  4. 为什么要引入齐次坐标,齐次坐标的意义(二)
  5. 企业电子邮件系统全局地址簿管理及使用方法介绍
  6. OpenCV-Python Feature2D 特征点检测(含SIFT/SURF/ORB/KAZE/FAST/BRISK/AKAZE)
  7. 网络工程师,路由器4种模式详解:AP,Router,Repeater,Bridger (接入点,无线路由,中继,桥接)
  8. Java8新的时间和日期
  9. 使用Python预测黄金AU9999收盘价
  10. 「数据游戏」:使用 ARIMA 算法预测三日后招商银行收盘价