特性配置 - 1. Namespace Identification Descriptor (NID) (第278页)
在《NVM Express® Base Specification, revision 2.0b》中,Namespace Identification Descriptor(命名空间标识符描述符)和NVM Set List(NVM集合列表)是管理命名空间和NVM集合的关键数据结构。以下是对这些部分的深入分析:
1. Namespace Identification Descriptor (NID)
命名空间标识符描述符用于描述命名空间的标识符。控制器返回的命名空间标识符描述符包含一个Namespace Identifier Type (NIDT) 字段,该字段指示命名空间标识符的数据类型,并且描述符的长度由Namespace Identifier Length (NIDL) 字段定义。
字段定义:
- Namespace Identifier Type (NIDT):
-
该字段指示命名空间标识符的类型,并且根据类型,标识符的长度有所不同。常见的标识符类型包括:
- 0h:保留。
- 1h:IEEE扩展唯一标识符(EUI64),长度为8字节。
- 2h:命名空间全局唯一标识符(NGUID),长度为16字节。
- 3h:命名空间UUID,长度为16字节,遵循RFC 4122规范。
- 4h:命令集标识符(CSI),长度为1字节。
- 5h到FFh:保留。
-
Namespace Identifier Length (NIDL):
-
该字段指示命名空间标识符(NID)字段的字节长度。它决定了整个命名空间标识符描述符的总长度(NIDL + 4字节)。
-
Namespace Identifier (NID):
- 该字段包含命名空间的唯一标识符,值在命名空间创建时指定,并在命名空间生命周期内保持不变。
作用:
命名空间标识符描述符帮助控制器识别和标识命名空间的特性。根据命名空间的类型,控制器可以返回不同类型的标识符。控制器返回这些描述符时,会按顺序列出命名空间标识符,直到遇到NIDL字段值为0h时,表示列表的结束。该字段为命名空间的唯一标识提供了多种选项,便于主机系统根据不同需求选择合适的标识符类型。
注意:
- 控制器不能返回多个具有相同Namespace Identifier Type (NIDT)的描述符。
- 如果控制器支持Command Set Identifier NID (NIDT=4),则必须返回命令集标识符。
2. NVM Set List (CNS 04h)
NVM集合列表是一种由NVM Set Attribute Entry数据结构组成的有序列表,表示可以由控制器访问的NVM集合的属性。这些集合按NVM Set Identifier升序排列,包含大于或等于CDW11.NVMSETID字段指定的值的NVM集合标识符。
字段定义:
- NVM Set List的内容基于NVM Set Attribute Entry数据结构,定义了NVM集合的各种属性。
- 列表中的每个条目都描述了一个可由控制器访问的NVM集合的详细信息。
作用:
NVM集合列表允许主机和控制器查询NVM集合的属性,例如集合中的命名空间、集合的大小等。它为控制器提供了详细的集合信息,确保主机能够管理多个命名空间和控制器之间的资源。
注意:
- NVM Set List中不能包含清零为0h的条目。
总结:
- 命名空间标识符描述符为控制器提供了多种命名空间标识符类型,包括IEEE扩展唯一标识符(EUI64)、命名空间全局唯一标识符(NGUID)、UUID以及命令集标识符等。它们有助于主机系统识别命名空间,并根据标识符类型提供相应的功能。
- NVM Set List通过描述NVM集合的属性,帮助系统管理员和主机系统高效管理多个命名空间及其资源,确保在多个控制器和命名空间之间有效地分配和访问资源。
这些字段和数据结构对于高效管理命名空间和资源,尤其是在支持多个命名空间和控制器的复杂存储系统中,提供了重要的支持。