1.format nvme command– NVM Command Set Specific

Format NVM命令用于对NVM介质进行低级格式化。主机使用此命令来更改LBA数据或元数据大小。可能会破坏与所有名称空间关联的所有数据和元数据,或者仅破坏与命令关联的特定namespaces。在成功完成Format NVM命令之后,控制器将不返回任何先前包含在受影响的namespaces中的用户数据。
     作为Format NVM命令的一部分,主机请求格式化操作,并且可以请求安全擦除NVM的内容(请参阅图328中的SES字段)。安全擦除有两种类型。①用户数据擦除:将擦除NVM子系统中存在的所有用户内容。②加密擦除:通过删除先前用来加密用户数据的加密密钥来擦除NVM子系统中存在的所有用户内容。
     format操作的范围和带安全擦除的format的范围取决于控制器对Format NVM命令和命令中指定的namespaces标识符所支持的属性,如图327中所述。安全擦除的类型基于如图328所示,在Command Dword 10中设置``安全擦除设置''字段。

figure 327:Format NVM-Operation Scope
FAN Bit NSID Format Operation
0 FFFFFFFFh 附加到控制器的所有namespases。 其他namespaces不受影响。
0 任何分配的值(参阅第6.1.3节) 指定的特定namespaces。 其他namespaces不受影响
1 任何分配的值(参阅第6.1.3节)或者FFFFFFFFh NVM子系统的所有namespaces
FAN Bit的注释 对于具有安全擦除的Format NVM命令,此列引用Identify Controller数据结构中FNA字段中的bit1(请参见图247),而FNA字段中的bit0被忽略。 对于不带安全擦除的Format NVM命令,此列引用FNA字段中的bit0,而FNA字段中的bit1被忽略  

如果控制器处于无效的安全状态,Format NVM命令将失败。 如果指定要格式化的命名空间有未完成的I / O命令,则Format NVM命令可能会失败。 正在进行Format NVM命令的名称空间的I / O命令可能会中止,如果中止,则控制器应返回正在进行中Format的状态代码。

对于NSID字段设置为FFFFFFFFh的Format命令,该命令指定安全擦除:

a) 如果在FNA字段中将bit1设置为“ 1”(请参见图247),并且NVM子系统中没有namespaces,则该Format命令应正确完成;
b) 如果在FNA字段中将bit1清除为“ 0”,并且没有附加的namespeaces,则该Format命令将正确完成。

对于将NSID字段设置为FFFFFFFFh且未指定安全擦除的Format命令:

a)如果在FNA字段中将位0设置为“ 1”,并且NVM子系统中没有namespaces,则该Format命令应无错误地完成;
b)如果在FNA字段中将位0清除为“ 0”,并且没有附加的namespaces,则该Format命令将正确完成。

成功完成Format NVM命令后,Format NVM命令中指定的设置(例如PI,MSET,LBAF)将作为“Identify Namespace ”数据结构的一部分进行报告。 如果Format NVM命令导致namespaces的逻辑块大小发生更改,则结果namespaces大小(即NSZE)和namespaces容量(即NCAP)可能与处理Format之前指示的值不同。
     Format NVM命令使用Command Dword 10字段。 所有其他命令特定字段均保留。

Figure 328: Format NVM – Command Dword 10
Bits 描述
31:12 保留
11:09 Secure Erase Setting(SES)

定义
000b 无安全模式
001b User Data Erase:所有用户数据应被擦除,擦除后的用户数据内容不确定(例如,用户数据可以填充为0,1等)。 如果所有用户数据都已加密,则当请求用户数据擦除时,控制器可以执行加密擦除。
010b Cryptographic Erase:所有用户数据均应以密码方式擦除。 这是通过删除加密密钥来完成的。
011b to 111b 保留
08 Protection Information Location (PIL):如果设置为“ 1”且启用了保护信息,则保护信息将作为元数据的前八个字节进行传输。 如果将其清除为“ 0”并且启用了保护信息,则保护信息将作为元数据的最后八个字节进行传输。 此设置在“标识namespaces”数据结构的“端到端数据保护类型设置(DPS)”字段中报告,并受“标识namespaces”数据结构的“端对端数据保护功能(DPC)”字段约束。
07:05

protection Information(PI):

定义
000b 保护信息未开启
001b 启用保护信息,Type 1
010b 启用保护信息,Type 2
011b 启用保护信息,Type 3
100b to 111b 保留
04 Metadata Settings(MSET):如果将元数据作为扩展数据LBA的一部分进行传输,则此位设置为“ 1”。 如果将元数据作为单独的缓冲区的一部分进行传输,则将该位清除为“ 0”。 基于保护信息(PI)字段,元数据可以包括保护信息。 如果所选LBA格式的元数据大小为0h,则此位不适用
03:00 LBA Format(LBAF):该字段指定要应用于NVM介质的LBA格式。 这对应于“标识”命令中指示的LBA格式,请参见图245和图246。

NVM介质format完成后,completion queue entry将发布到Admin Completion Queue中。 格式NVM命令特定的状态值在图329中定义。

figure 329 Format NVM – Command Specific Status Values
定义
0Ah Invalid Format:指定的格式无效。 这可能是以下条件所致:
1)指定无效的LBA格式编号;
2)当每个LBA没有足够的元数据时启用保护信息;
3)指定的格式在当前配置中不可用;
4)无效的安全状态(请参阅TCG存储接口交互规范),

2.Identify command

Identify命令返回一个数据缓冲区,用于描述有关NVM子系统,控制器或namespace(s)的信息。 数据结构的大小为4,096字节。Identify命令使用Data pointer,Command Dword10,Command Dword11和Command Dword14字段,所有其他命令特定字段均保留。

Figure 240: Identify – Data Pointer
bits 描述
127:00 Data Pointer (DPTR):此字段指定数据缓冲区的开始。 相关定义,参见图105。 如果使用PRP,则此字段不应是指向PRP列表的指针,因为数据缓冲区的跨度不能超过一个页面边界
Figure 241: Identify – Command Dword 10
bits 描述
31:16

控制器标识符(CNTID):此字段指定用作某些“识别”操作一部分的控制器标识符。 图244中指示了CNTID字段是否用于特定的Identify操作。如果此字段未用作Identify操作的一部分,则:

•主机软件应将该字段清除为0h,以实现向后兼容(0h是有效的控制器标识符);
•控制器应忽略此字段。

支持 Namespace管理功能(请参阅第8.12节)的控制器应支持此字段

15:07 保留
07:00 控制器或 Namespace结构(CNS):此字段指定要返回给主机的信息。 请参考图244。
Figure 242: Identify – Command Dword 11
value description
31:16 保留
15:00 NVM集标识符(NVMSETID):此字段指定NVM集的标识符。 用于识别CNS值为04h的操作。 该字段应清除为0h,以识别使用其他CNS值的操作

Dword 14用于指定UUID索引值(在控制器支持UUID的情况下)

Figure 242: Identify – Command Dword 14
value description
31:07 保留
06:00

UUID Index

Figure 244: Identify – CNS Values

2.1Identify Namespace data structure (CNS 00h)
      如果“ Namespace Identifier(NSID)”字段指定了活动的NSID,则“ Identify Namespace”数据结构(请参阅图245)将返回给该指定名称空间的主机。 如果指定的名称空间是无效的NSID,则控制器返回零填充数据结构。

如果控制器支持命名空间管理功能(请参阅第8.12节),并且NSID字段设置为FFFFFFFFh,则控制器将返回一个标识命名空间数据结构,该数据结构指定此控制器的命名空间之间共有的功能。 如果控制器不支持命名空间管理功能,并且NSID字段设置为FFFFFFFFh,则控制器将使命令失败,且状态码为无效命名空间或格式。

LBA格式的数据结构在图246中描述

NVMe1.4 Admin Command学习(1)-- format identify相关推荐

  1. NVMe1.4 Admin Command 学习(3)-- fw commit sanitize

    1.Firmware Commit command 在1.0和1.1协议里,Firmware Commit command被称作Firmware activate,固件提交命令用于修改固件映像或引导分 ...

  2. NVMe1.4 Admin Command学习(6) get feature set feature

    1.get feature 1.1字段参数 Get Features命令检索指定feature的属性,get feature 用data pointer,cdword10, cdword11和cdwo ...

  3. 【NVMe2.0b 14】NVMe Admin Command Set

    5Admin Command Set Admin Command Set 定义了可以提交到 Admin Submission Queue 的命令. 提交队列条目 (submission queue e ...

  4. SB Admin 2 学习笔记1

    需要掌握能够搭建起一个 dashboard 的能力, 因为很少有运维开发团队有专职的前端, bootstrap 也要讲个基本法. SB Admin 2, 一个免费的 bootstrap theme, ...

  5. Canal Admin Web-UI 学习

    文章目录 Canal Admin Web-UI 官方介绍 Canal Admin Web-UI 安装 Canal Admin Web-UI 与 Canal Server 对接 材料 第一步 第二步 第 ...

  6. linux bash:command,学习使用Linux Command line(Git Bash)

    了解一个新事物,一个新知识最好的方式,就是对它问问题,然后再自己寻找答案,进行解答并总结,SO...... Question: 命令行是什么? Baidu 命令提示符是在操作系统中,提示进行命令输入的 ...

  7. python整数类型bcdoxx_Python学习的Format()函数,python,之,format

    format()函数基本语法 format()函数作为python的内置函数,用于格式化字符串str.format(),有了此函数可以快速处理各种字符串. 字符格式化 format 函数可以接受不限个 ...

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

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

  9. SG3 tool hdd 512/520 format

    #apt-get 去安裝 [root@benjr ~]# apt-get install sg3-utils The Linux sg3_utils package http://sg.danny.c ...

  10. Dell G3 搭建深度学习环境(Ubuntu16.04)

    文章目录 一.Ubuntu16.04 系统安装 前言: 1.1 准备阶段 1.2 安装阶段 二.Ubuntu16.04 nvidia显卡驱动 2.1. 禁用nouveau开源驱动 2.2 安装nvid ...

最新文章

  1. pythondir什么意思_Python之dir()与__dict__的区别
  2. 【Linux网络编程】 网络协议入门
  3. 一轮项目冲刺——移山小分队(6)
  4. git合并分支的时候将某个文件添加到忽略列表_常用的 Git 命令
  5. 源代码 到 可执行程序的过程
  6. python method_用实例分析Python中method的参数传递过程
  7. 将WebAPI发布到本地服务器与远程服务器
  8. AppDynamic自定义统计异常reportError,实时显示结果
  9. 设计模式 (十七) 迭代器模式
  10. linux adb工具 终极总结
  11. mtk android可修改imei,MTK android 可修改IMEI方法
  12. Python 疾病诊断归一化
  13. (一)Word中如何将表格断开,并且增加空的一行
  14. 理解 Rack 应用及其中间件
  15. 小型软件企业组织结构
  16. Java 类详解 9章
  17. 耳机串音问题解决(crosstalk)
  18. 深度学习语义分割论文笔记(待完善)
  19. 天天学JAVA-JAVA基础(3)
  20. python winform开发框架_winform引用网络上的图

热门文章

  1. 油猴插件的介绍和安装详解脚本的介绍和添加举例
  2. hp打印机一直显示正在打印中_打印机显示正在打印却没反应 - 卡饭网
  3. cordova build时出错Minimum supported Gradle version is 5.4.1. Current version is 4.10.3
  4. 盘点世界最牛的90后黑客,厉害到你无法想象的程度
  5. 网络克隆自动修改计算机名ip,网络克隆之自动更改IP地址和计算机名
  6. python网络爬虫-淘宝商品比价定向爬虫
  7. DirectX支配游戏 历代GPU架构全解析
  8. 年度总结 | 目标检测2019,你还有不知道的吗?
  9. Python 学习笔记03 - 程序结构
  10. 优化动画卡顿:卡顿原因分析及优化方案