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”字段。
Bits |
描述 |
63:00 |
Starting LBA(SLBA):这个字段指示了要作为操作一部分写入的第一个逻辑块的64位地址。 Command Dword 10 contains bits 31:00; Command Dword 11 contains bits 63:32. |
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的值。 |
Bits |
描述 |
31:00 |
nitial Logical Block Reference Tag (ILBRT): 该字段指示初始 Logical Block Reference Tag 值。 仅当namespace的格式设置为使用端到端保护信息时,才使用此字段。 请参阅第8.3节。 |
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中定义。
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相关推荐
- 172. Factorial Trailing Zeroes
/**172. Factorial Trailing Zeroes *2016-6-4 by Mingyang* 首先别忘了什么是factorial,就是阶乘.那么很容易想到需要统计* (2,5)对的 ...
- pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)
pandas将列表list插入到dataframe的单元格中.pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes) 目录
- [LeetCode] Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...
- Bash: Removing leading zeroes from a variable
old="0004937" # sed removes leading zeroes from stdin new=$(echo $old | sed 's/^0*//') 转载于 ...
- b. Suffix Zeroes
b: Suffix Zeroes Time Limit: 1 Sec Memory Limit: 128 MB Description 这个游戏超休闲的~.现在你需要找一个自然数n,你找的自然数需要 ...
- Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...
- 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 ...
- [LintCode] Trailing Zeroes 末尾零的个数
Write an algorithm which computes the number of trailing zeros in n factorial. Have you met this que ...
- 【LeetCode】172 - Factorial Trailing Zeroes
Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...
- spring boot报错Invalid numeric value: Leading zeroes not allowed
场景:用swagger测试接口时,传递的参数中有0开头的,如下: 接口返回结果报错: Invalid numeric value: Leading zeroes not allowed 解决方案:在a ...
最新文章
- JXJJOI2018_T1_market
- finally代码块和return的执行顺序问题
- jmeter参数化之用户参数
- java图像处理,彩色图像转灰度图的几种实现方式
- 微型计算机接口与技术的交通灯,微机原理及接口技术课程设计交通灯
- Java编程思想 4th 第5章 初始化与清理
- setInterval()和setTimeout()
- C语言实现求斐波那契数列中的第n项
- PDF文件怎样修改,怎么修改PDF文件内容
- 小程序input绑定输入保存数据
- Splines(样条曲线)
- 快速入门spring data jpa 2,多表操作,逻辑删除
- 51 Best DevOps Tools for #DevOps Engineers
- Objective-C runtime机制(5)——iOS 内存管理
- 全球及中国贴片电容行业市场竞争态势及投资风险预测报告2022-2028年
- [JsHtml]全面清除前端缓存
- 天干、地支纪年 月 日
- Android帧动画框架
- php商城积分兑换商品功能,帮助中心-积分商城的功能详解
- 使用 GVM 工具管理 Go 版本
热门文章
- 关于 pygame中,检测按键按下
- linux安装和使用docker教程
- 抢票软件依旧跑得欢 记者25分钟抢两张热门票
- 为什么要引入齐次坐标,齐次坐标的意义(二)
- 企业电子邮件系统全局地址簿管理及使用方法介绍
- OpenCV-Python Feature2D 特征点检测(含SIFT/SURF/ORB/KAZE/FAST/BRISK/AKAZE)
- 网络工程师,路由器4种模式详解:AP,Router,Repeater,Bridger (接入点,无线路由,中继,桥接)
- Java8新的时间和日期
- 使用Python预测黄金AU9999收盘价
- 「数据游戏」:使用 ARIMA 算法预测三日后招商银行收盘价