admin管理员组

文章数量:1654338

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 BitNSIDFormat Operation
0FFFFFFFFh附加到控制器的所有namespases。 其他namespaces不受影响。
0任何分配的值(参阅第6.1.3节)指定的特定namespaces。 其他namespaces不受影响
1任何分配的值(参阅第6.1.3节)或者FFFFFFFFhNVM子系统的所有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:09Secure Erase Setting(SES)
定义
000b无安全模式
001bUser Data Erase:所有用户数据应被擦除,擦除后的用户数据内容不确定(例如,用户数据可以填充为0,1等)。 如果所有用户数据都已加密,则当请求用户数据擦除时,控制器可以执行加密擦除。
010bCryptographic Erase:所有用户数据均应以密码方式擦除。 这是通过删除加密密钥来完成的。
011b to 111b保留
08Protection 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保留

 

04Metadata Settings(MSET):如果将元数据作为扩展数据LBA的一部分进行传输,则此位设置为“ 1”。 如果将元数据作为单独的缓冲区的一部分进行传输,则将该位清除为“ 0”。 基于保护信息(PI)字段,元数据可以包括保护信息。 如果所选LBA格式的元数据大小为0h,则此位不适用
03:00LBA 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
定义
0AhInvalid 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:00Data 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
valuedescription
31:16保留
15:00NVM集标识符(NVMSETID):此字段指定NVM集的标识符。 用于识别CNS值为04h的操作。 该字段应清除为0h,以识别使用其他CNS值的操作

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

Figure 242: Identify – Command Dword 14
valuedescription
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中描述

本文标签: commandadminidentifyampFormat