特性配置 - 1. Namespace Identification Descriptor (NID) (第278页)
NVME2.0协议解读 1 min read

特性配置 - 1. Namespace Identification Descriptor (NID) (第278页)

Blog Author

在《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) 字段定义。

字段定义

  1. Namespace Identifier Type (NIDT)
  2. 该字段指示命名空间标识符的类型,并且根据类型,标识符的长度有所不同。常见的标识符类型包括:

    • 0h:保留。
    • 1h:IEEE扩展唯一标识符(EUI64),长度为8字节。
    • 2h:命名空间全局唯一标识符(NGUID),长度为16字节。
    • 3h:命名空间UUID,长度为16字节,遵循RFC 4122规范。
    • 4h:命令集标识符(CSI),长度为1字节。
    • 5h到FFh:保留。
  3. Namespace Identifier Length (NIDL)

  4. 该字段指示命名空间标识符(NID)字段的字节长度。它决定了整个命名空间标识符描述符的总长度(NIDL + 4字节)。

  5. Namespace Identifier (NID)

  6. 该字段包含命名空间的唯一标识符,值在命名空间创建时指定,并在命名空间生命周期内保持不变。

作用

命名空间标识符描述符帮助控制器识别和标识命名空间的特性。根据命名空间的类型,控制器可以返回不同类型的标识符。控制器返回这些描述符时,会按顺序列出命名空间标识符,直到遇到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集合的属性,帮助系统管理员和主机系统高效管理多个命名空间及其资源,确保在多个控制器和命名空间之间有效地分配和访问资源。

这些字段和数据结构对于高效管理命名空间和资源,尤其是在支持多个命名空间和控制器的复杂存储系统中,提供了重要的支持。