《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(5.23)-- Format NVM command
5.23 Format NVM command - NVM Command Set Specific
Format NVM命令用于低级格式化NVM媒介。这个命令被host主机使用,来变更LBA数据大小和(或)元数据大小。一个低级格式化可以销毁命令指定的相关所有namespace或仅特定的namespace上的所有数据和元数据(参考Identify Controller数据结构中的Format NVM Attributes字段)。Foamat NVM命令成功完成之后,之前包含在对应namespace的任何用户数据都不能再由controller读出来了。
作为Format NVM命令的一部分,主机请求一个格式化操作并且可以请求一个NVM内容的安全擦除(参考Figure 328的SES字段)。有两种类型的擦除。User Data Erase擦除所有呈现在NVM subsystem中的用户内容。Cryptographic Erase是通过删除用于之前加密用户数据所用的加密密钥来擦除NVM subsystem中呈现的所有用户内容。
格式化操作的范围和安全擦除格式化的范围依赖于controller对Format NVM命令支持的属性和命令中指定的Namespace Identifier,请参见Figure 327中的描述。安全擦除类型,如果能使用的话,它基于Command Dword 10中Secure Erase Settings字段,如Figure 328中定义。

如果controller处于一种无效的安全状态(参考相应的安全规范,例如:TCG Storage Interface Interactions Specification)Format NVM命令将失败。如果有待处理的I/O命令到指定的被格式化的namespace,Format NVM命令可以失败。如果Format NVM命令正在被处理,发向此namespace的I/O命令可能被中止,如果中止发生controller就返回一个Format in Progress状态码。
对于一个NSID字段设置为0xFFFFFFFF的Format命令指定安全的擦除:
a)如果FNA字段的第1位设置为1(参考Figure247)并且NVM subsystem中没有namespaces,那么Format命令应该无错误完成;
b)如果FNA字段的第1位设置为0,并且没有挂载namespaces,那么Format命令应该无错误完成。
对于一个NSID字段设置为0xFFFFFFFF的Format命令未指定安全的擦除:
a)如果FNA字段的第0位设置为1,并且NVM subsystem中没有namespaces,那么Format命令应该无错误完成;
b)如果FNA字段的第0位设置为0,并且没有挂载namespaces,那么Format命令应该无错误完成。
Format NVM命令成功完成支持,Format NVM命令中指定的设置(例如PI,MSET,LBAF)被上报,作为Identify Namespace数据结构的一部分。如果Format NVM命令导致namespace的逻辑块大小变化,那么致使namespace大小(即:NSZE)(参考Figure245)和namespace能力(即:NCAP)(参考Figure245)与Format NVM命令处理之前指示的值可能不同。
Format NVM命令使用Command Dword 10字段。所有其他特定于命令的字段保留。


5.23.1 命令Completion
当NVM媒介格式化完成后CQE被推送到Admin CQ中。Format NVM命令特定状态值定义在Figure 329中。

《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(5.23)-- Format NVM command的更多相关文章
- 2019/1/10 redis学习笔记(二)
本文不涉及集群搭建操作 关于在lua脚本中操作redis的应用场景 大家都知道redis对于单个集合的操作是原子性的;但是有可能有一种场景是这样.比如说抢红包,现在有十个人抢五份红包,抽象到我们jav ...
- 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承
<Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...
- Flutter学习笔记(23)--多个子元素的布局Widget(Rwo、Column、Stack、IndexedStack、Table、Wrap)
如需转载,请注明出处:Flutter学习笔记(23)--多个子元素的布局Widget(Rwo.Column.Stack.IndexedStack.Table.Wrap) 上一篇梳理了拥有单个子元素布局 ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(1)
材料说明: 文档<NVM-Express-1_4-2019.06.10-Ratified.pdf>来自于NVMe网站:https://nvmexpress.org/ 笔记目的是学习NVMe ...
- 201521123003《Java程序设计》第10周学习笔记
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...
- Jerry Wang从2017年到2019年的自由泳学习笔记
打腿 把注意力调整到脚部,尽量不要让他打出水面,因为在空气中大腿完全是无用功,但是如果只是脚跟出水一点,倒也没什么关心,但是主观上,要控制一下,如果你听到你的打腿是"咚咚咚咚"这样 ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(5.21.1.10-加-6.4)Atomic_Operations
5.21.1.10 Write Atomicity Normal 这个特性控制AWUN和NAWUN参数的操作.设置的属性值在set Feature命令的Dword 11中表明. 如果提交Get Fea ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.8)-- Reservations
8.8 Reservations 预订 NVMe的reservation预订功能,用于让两个或多个主机能够协调配合的访问共享namespace.使用这些功能的协议和方式超出了本规格说明书的范围.对这些 ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.20)-- ANA
8.20 非对称namespace访问报告 8.20.1 非对称namespace访问报告概况 非对称Namespace访问(ANA)在如下场景下产生,基于访问这个namespace的controll ...
随机推荐
- The finally block does not always execute in try finally
A finally block does not always xecute. The code in the try block could go into an infinite loop, th ...
- 邓 【PHP大全】
获取对应的时间戳(只保存月底的时间戳) function getTimeDate($timeType, $time, $count) { switch ($timeType) { case 'MONT ...
- python基础入门之一 —— 变量与运算符
1.标识符 由数字,字母,下划线组成 不能由数字开头 不能使用内置关键字 严格区分大小 2.数据类型 数值:int (整型) float(浮点型) 布尔型:True(真) False(假) str ( ...
- 00-django | 02-处理HTTP请求
00-django | 02-处理HTTP请求 python Django Django 处理 HTTP 请求 Hello 视图函数 我们先以一个最简单的 Hello World 为例来看看 djan ...
- 硬件知识整理part3--电阻在单片机系统中的应用
邦有道,如矢:邦无道,如矢. --孔子 电阻在电路中主要功能是限流和分压等等.在单片机系统中自然也是. 电阻作为限流应该是最常用的应用之一,对于单片机外围设计来说,电阻的应用非常重要,在很多时候,我 ...
- es的分布式架构原理是什么?
es的分布式架构原理是什么? 1.首先说一些分片(shard)是什么? ES中所有数据均衡的存储在集群中各个节点的分片中,会影响ES的性能.安全和稳定性 每个shard都是一个最小工作单元,承载部分数 ...
- sql查询 ——排序
-- 排序 -- order by 排序 默认为升序 -- asc 升序 -- desc 降序 -- 查询身高 分别用升序和降序 select *from student order by high ...
- JavaScript自学笔记(2)---function a(){} 和 var a = function(){}的区别(javascript)
function a(){} 和 var a = function(){}的区别: 学习做浮窗,看到别人的代码里有: window.onresize = function(){ chroX = doc ...
- P3902 递增
链接:P3902 ----------------------------------------- 这道题就是最长上升子序列的模板题,因为我们修改的时候可没说不能改成小数(暴力) --------- ...
- NoSQLBooster如何MongoDB的部分文档从一个集合拷贝到另外一个集合中
假设MongoDB数据库中存有collection_A和collection_B两个集合,如下图所示: (一)先从集合collection_A中拷贝选择的文档 打开collection_A,看到目前有 ...