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的更多相关文章

  1. 2019/1/10 redis学习笔记(二)

    本文不涉及集群搭建操作 关于在lua脚本中操作redis的应用场景 大家都知道redis对于单个集合的操作是原子性的;但是有可能有一种场景是这样.比如说抢红包,现在有十个人抢五份红包,抽象到我们jav ...

  2. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  3. Flutter学习笔记(23)--多个子元素的布局Widget(Rwo、Column、Stack、IndexedStack、Table、Wrap)

    如需转载,请注明出处:Flutter学习笔记(23)--多个子元素的布局Widget(Rwo.Column.Stack.IndexedStack.Table.Wrap) 上一篇梳理了拥有单个子元素布局 ...

  4. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(1)

    材料说明: 文档<NVM-Express-1_4-2019.06.10-Ratified.pdf>来自于NVMe网站:https://nvmexpress.org/ 笔记目的是学习NVMe ...

  5. 201521123003《Java程序设计》第10周学习笔记

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  6. Jerry Wang从2017年到2019年的自由泳学习笔记

    打腿 把注意力调整到脚部,尽量不要让他打出水面,因为在空气中大腿完全是无用功,但是如果只是脚跟出水一点,倒也没什么关心,但是主观上,要控制一下,如果你听到你的打腿是"咚咚咚咚"这样 ...

  7. 《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 ...

  8. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.8)-- Reservations

    8.8 Reservations 预订 NVMe的reservation预订功能,用于让两个或多个主机能够协调配合的访问共享namespace.使用这些功能的协议和方式超出了本规格说明书的范围.对这些 ...

  9. 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8.20)-- ANA

    8.20 非对称namespace访问报告 8.20.1 非对称namespace访问报告概况 非对称Namespace访问(ANA)在如下场景下产生,基于访问这个namespace的controll ...

随机推荐

  1. Java synchronized 关键字详解

    Java synchronized 关键字详解 前置技能点 进程和线程的概念 线程创建方式 线程的状态状态转换 线程安全的概念 synchronized 关键字的几种用法 修饰非静态成员方法 sync ...

  2. webapi+Quartz.NET解决若干定时程序同时运行的问题

    项目现状: 有若干定时程序需要自启动运行,为了简便程序部署等问题,采取这种办法把定时程序集中管理到webapi中跟随api发布 代码架构介绍: 新建一个类库,类库引用Quartz(Quartz.2.3 ...

  3. 「Flink」理解流式处理重要概念

    什么是流式处理呢? 这个问题其实我们大部分时候是没有考虑过的,大多数,我们是把流式处理和实时计算放在一起来说的.我们先来了解下,什么是数据流. 数据流(事件流) 数据流是无边界数据集的抽象 我们之前接 ...

  4. 7.python虚拟环境详解

    1.为什么创建虚拟环境? 和其他大多数现代编程语言一样,Python对包和模块的下载.存储以及管理有其自己的一套方法,Python的包一般都存在几个特定的地方,大部分系统包会存在sys.prefix指 ...

  5. nginx location展示及文件共享

    nginx 目录展示及文件访问 效果: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5G9wfKK-1570116907804)(E:\Users\FangJunX ...

  6. springboot 查看H2数据库

    1  再application.properties文件中,添加 spring.h2.console.enabled=true 2 再浏览器中打开: http://localhost:8080/h2- ...

  7. Excel 2016双击文件打开后是空白,再次双击才能打开(或者通过文件,打开才能打开)

    问题描述: 直接双击excel文件打开后是空白的,几乎所有功能都无法使用.但是再次双击该文件能够打开,或者通过文件 --> 打开的方式才能打开. 虽说能够打开文件,但是对于咱们这种追求完美的人来 ...

  8. 使用 TypeScript & mocha & chai 写测试代码实战(17 个视频)

    使用 TypeScript & mocha & chai 写测试代码实战(17 个视频) 使用 TypeScript & mocha & chai 写测试代码实战 #1 ...

  9. 关于Synchronized研伸扩展

    代码1 synchronized方法 synchronized void method(){ .......... } 代码2 synchronized代码块 synchronized (obj){ ...

  10. 【机器学习】使用CNN神经网络实现对图片分类识别及模型转换

    仅做记录,后面慢慢整理 训练函数: from skimage import io, transform # skimage模块下的io transform(图像的形变与缩放)模块 import glo ...