admin管理员组文章数量:1654383
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中描述
本文标签: commandadminidentifyampFormat
版权声明:本文标题:NVMe1.4 Admin Command学习(1)-- format & identify 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1729648824a1208794.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论