特性配置 - 5.17.2.15 Namespace Granularity List (CNS 16h) (第285页)
在《NVM Express® Base Specification, revision 2.0b》中,第5.17.2.15节和第5.17.2.16节涉及了关于命名空间粒度列表和UUID列表的数据结构。下面将这些部分的内容进行详细分析和解读。
5.17.2.15 Namespace Granularity List (CNS 16h)
-
Namespace Granularity List 允许控制器报告命名空间的粒度。这是用于描述命名空间中每个元素的操作单元大小的功能。例如,如果支持粒度,控制器可以报告有关每个命名空间的特定信息,帮助主机系统优化数据存取方式。
-
如果命令集标识符 (Command Set Identifier) 不支持命名空间粒度列表,控制器会返回"Invalid I/O Command Set"的错误状态。
-
用途和适用范围:
- 适用于支持特定命名空间粒度管理的I/O命令集。
- 只有当命令集标识符与支持命名空间粒度列表的命令集关联时,命令才会被执行。
5.17.2.16 UUID List (CNS 17h)
UUID(通用唯一标识符)列表是用于标识命名空间或控制器的唯一标识符。在此规范中,UUID列表的结构被定义为一个包含多个UUID条目的列表。每个UUID条目可以是0(表示无效UUID)或有效的UUID。此列表的使用主要与命名空间、控制器以及其他硬件标识符相关。
UUID List 格式 (Figure 284):
- UUID 1 到 UUID 127 是一个包含最多127个UUID条目的列表。
- 每个UUID条目使用128位(16字节)表示,表示一个唯一标识符。
- 清除为0的UUID条目表示列表的结束。
- 如果控制器支持UUID列表(例如,通过Controller Attributes字段中的bit 9标记),则UUID 1字段必须包含一个非零的有效UUID。
UUID Entry 格式 (Figure 285):
每个UUID条目包含一个UUID Entry Header和与UUID关联的字段: - Identifier Association (标识符关联): - 该字段指示UUID是否与某个供应商相关联。 - 00b:没有报告关联。 - 01b:UUID与在PCI Vendor ID字段中报告的供应商相关联。 - 10b:UUID与在PCI Subsystem Vendor ID字段中报告的供应商相关联。 - 11b:保留。
如何应用UUID列表:
-
UUID 列表的有效性:在控制器的Identify Controller数据结构中的Controller Attributes字段(Figure 275)如果设置bit 9为1,则UUID列表必须包含至少一个有效的UUID。无效的UUID(0h)将表示列表的结束。
-
UUID的关联:每个UUID的关联状态指示该UUID是否与某个特定的供应商(如通过PCI Vendor ID或PCI Subsystem Vendor ID)相关联。这对于供应商特定的命名空间或控制器管理非常有用。
-
作用:
- 主机系统管理:UUID列表可以帮助主机识别和管理不同命名空间或控制器的唯一标识符,尤其是在多控制器和多命名空间的环境中。
- 虚拟化和资源分配:在虚拟化环境中,UUID用于区分不同的虚拟资源和硬件实体,提供一致的标识符。
总结:
- 命名空间粒度列表(CNS 16h)提供了命名空间粒度管理的支持,帮助优化数据访问和操作单元的粒度。
- UUID列表(CNS 17h)则主要用于标识和管理硬件资源,确保主机系统能够正确识别和管理命名空间、控制器等硬件资源的唯一标识符。
- 关联性:UUID的关联性信息对于区分与特定供应商相关的资源或命名空间非常重要,这对于高效的资源调度和虚拟化管理至关重要。
这部分内容涉及了命名空间和控制器的标识与管理,特别是在虚拟化、资源分配以及多控制器配置中,UUID和命名空间粒度等字段为系统提供了高效、灵活的管理方式。