NVMe1.4 Admin Command学习(1)-- format identify
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中设置``安全擦除设置''字段。
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字段。 所有其他命令特定字段均保留。
Bits | 描述 | ||||||||||||
31:12 | 保留 | ||||||||||||
11:09 |
Secure Erase Setting(SES)
|
||||||||||||
08 | Protection Information Location (PIL):如果设置为“ 1”且启用了保护信息,则保护信息将作为元数据的前八个字节进行传输。 如果将其清除为“ 0”并且启用了保护信息,则保护信息将作为元数据的最后八个字节进行传输。 此设置在“标识namespaces”数据结构的“端到端数据保护类型设置(DPS)”字段中报告,并受“标识namespaces”数据结构的“端对端数据保护功能(DPC)”字段约束。 | ||||||||||||
07:05 |
protection Information(PI):
|
||||||||||||
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中定义。
值 | 定义 |
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字段,所有其他命令特定字段均保留。
bits | 描述 |
127:00 | Data Pointer (DPTR):此字段指定数据缓冲区的开始。 相关定义,参见图105。 如果使用PRP,则此字段不应是指向PRP列表的指针,因为数据缓冲区的跨度不能超过一个页面边界 |
bits | 描述 |
31:16 |
控制器标识符(CNTID):此字段指定用作某些“识别”操作一部分的控制器标识符。 图244中指示了CNTID字段是否用于特定的Identify操作。如果此字段未用作Identify操作的一部分,则: •主机软件应将该字段清除为0h,以实现向后兼容(0h是有效的控制器标识符); 支持 Namespace管理功能(请参阅第8.12节)的控制器应支持此字段 |
15:07 | 保留 |
07:00 | 控制器或 Namespace结构(CNS):此字段指定要返回给主机的信息。 请参考图244。 |
value | description |
31:16 | 保留 |
15:00 | NVM集标识符(NVMSETID):此字段指定NVM集的标识符。 用于识别CNS值为04h的操作。 该字段应清除为0h,以识别使用其他CNS值的操作 |
Dword 14用于指定UUID索引值(在控制器支持UUID的情况下)
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相关推荐
- NVMe1.4 Admin Command 学习(3)-- fw commit sanitize
1.Firmware Commit command 在1.0和1.1协议里,Firmware Commit command被称作Firmware activate,固件提交命令用于修改固件映像或引导分 ...
- NVMe1.4 Admin Command学习(6) get feature set feature
1.get feature 1.1字段参数 Get Features命令检索指定feature的属性,get feature 用data pointer,cdword10, cdword11和cdwo ...
- 【NVMe2.0b 14】NVMe Admin Command Set
5Admin Command Set Admin Command Set 定义了可以提交到 Admin Submission Queue 的命令. 提交队列条目 (submission queue e ...
- SB Admin 2 学习笔记1
需要掌握能够搭建起一个 dashboard 的能力, 因为很少有运维开发团队有专职的前端, bootstrap 也要讲个基本法. SB Admin 2, 一个免费的 bootstrap theme, ...
- Canal Admin Web-UI 学习
文章目录 Canal Admin Web-UI 官方介绍 Canal Admin Web-UI 安装 Canal Admin Web-UI 与 Canal Server 对接 材料 第一步 第二步 第 ...
- linux bash:command,学习使用Linux Command line(Git Bash)
了解一个新事物,一个新知识最好的方式,就是对它问问题,然后再自己寻找答案,进行解答并总结,SO...... Question: 命令行是什么? Baidu 命令提示符是在操作系统中,提示进行命令输入的 ...
- python整数类型bcdoxx_Python学习的Format()函数,python,之,format
format()函数基本语法 format()函数作为python的内置函数,用于格式化字符串str.format(),有了此函数可以快速处理各种字符串. 字符格式化 format 函数可以接受不限个 ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(1)
材料说明: 文档<NVM-Express-1_4-2019.06.10-Ratified.pdf>来自于NVMe网站:https://nvmexpress.org/ 笔记目的是学习NVMe ...
- SG3 tool hdd 512/520 format
#apt-get 去安裝 [root@benjr ~]# apt-get install sg3-utils The Linux sg3_utils package http://sg.danny.c ...
- Dell G3 搭建深度学习环境(Ubuntu16.04)
文章目录 一.Ubuntu16.04 系统安装 前言: 1.1 准备阶段 1.2 安装阶段 二.Ubuntu16.04 nvidia显卡驱动 2.1. 禁用nouveau开源驱动 2.2 安装nvid ...
最新文章
- pythondir什么意思_Python之dir()与__dict__的区别
- 【Linux网络编程】 网络协议入门
- 一轮项目冲刺——移山小分队(6)
- git合并分支的时候将某个文件添加到忽略列表_常用的 Git 命令
- 源代码 到 可执行程序的过程
- python method_用实例分析Python中method的参数传递过程
- 将WebAPI发布到本地服务器与远程服务器
- AppDynamic自定义统计异常reportError,实时显示结果
- 设计模式 (十七) 迭代器模式
- linux adb工具 终极总结
- mtk android可修改imei,MTK android 可修改IMEI方法
- Python 疾病诊断归一化
- (一)Word中如何将表格断开,并且增加空的一行
- 理解 Rack 应用及其中间件
- 小型软件企业组织结构
- Java 类详解 9章
- 耳机串音问题解决(crosstalk)
- 深度学习语义分割论文笔记(待完善)
- 天天学JAVA-JAVA基础(3)
- python winform开发框架_winform引用网络上的图
热门文章
- 油猴插件的介绍和安装详解脚本的介绍和添加举例
- hp打印机一直显示正在打印中_打印机显示正在打印却没反应 - 卡饭网
- cordova build时出错Minimum supported Gradle version is 5.4.1. Current version is 4.10.3
- 盘点世界最牛的90后黑客,厉害到你无法想象的程度
- 网络克隆自动修改计算机名ip,网络克隆之自动更改IP地址和计算机名
- python网络爬虫-淘宝商品比价定向爬虫
- DirectX支配游戏 历代GPU架构全解析
- 年度总结 | 目标检测2019,你还有不知道的吗?
- Python 学习笔记03 - 程序结构
- 优化动画卡顿:卡顿原因分析及优化方案