特性配置与管理 - 第284页
NVME2.0协议解读 1 min read

特性配置与管理 - 第284页

Blog Author

在《NVM Express® Base Specification, revision 2.0b》中,第5.17.2.14节到第5.17.2.15节涉及了控制器之间的资源分配和状态管理,特别是主控制器与次控制器之间的关联与管理。以下是对这些内容的详细分析:

1. Primary Controller Capabilities Structure (CNS 14h)

这是一个结构化数据,描述了主控制器的资源分配与管理能力。以下是结构的详细字段:

  • VI Resources Flexible Allocated to Primary (VIRFAP)
  • 这个字段表示目前分配给主控制器的VI(虚拟化资源)灵活资源的总数。这个数值会在Controller Level Reset之后可能发生变化,尤其是在虚拟化管理命令下新值被设置时。默认值是特定实现的。

  • VI Resources Private Total (VIPRT)

  • 这个字段指示主控制器的VI私有资源的总数。这有助于了解主控制器的资源使用情况,特别是在支持多控制器或虚拟化的场景中。

  • VI Resources Flexible Secondary Maximum (VIFRSM)

  • 该字段表示可以分配给次控制器VI灵活资源的最大数量。这对于多控制器系统中的资源分配管理至关重要,尤其是在需要动态调整资源分配的情况下。

  • VI Flexible Resource Preferred Granularity (VIGRAN)

  • 该字段指示分配和移除VI灵活资源的首选粒度。根据这个粒度,资源的分配将尽量减少内部实现资源的浪费,有助于提升系统效率。

2. Secondary Controller List (CNS 15h)

CNS 15h命令用于返回一个次控制器列表。每个次控制器在这个列表中有一个条目,总数最多为127个。以下是次控制器列表的结构:

字段分析

  • Number of Identifiers
  • 该字段指示列表中次控制器条目的数量。如果值为0h,表示列表为空,没有次控制器。

  • SC Entry N

  • 每个条目描述一个次控制器,最多127个条目,按顺序排列。
  • Secondary Controller Identifier (SCID):表示次控制器的标识符。
  • Primary Controller Identifier (PCID):表示与该次控制器相关联的主控制器标识符。
  • Secondary Controller State (SCS):指示次控制器的状态。1表示在线,0表示离线。
  • Virtual Function Number (VFN):如果次控制器是SR-IOV VF(虚拟功能),则此字段显示其VF编号。如果不是,则此字段为0h。
  • Number of VQ Flexible Resources Assigned (NVQ):指示当前分配给次控制器的VQ(队列)灵活资源的数量。

总结

  • 主控制器资源管理:CNS 14h命令通过提供有关VI资源、VQ资源以及资源分配和灵活性的详细信息,使得系统能够灵活地管理虚拟化资源。
  • 次控制器管理:CNS 15h命令返回的次控制器列表提供了有关次控制器状态和资源分配的信息。通过这个命令,主机可以识别和管理哪些次控制器处于在线状态,哪些处于离线状态,尤其是在SR-IOV虚拟化和资源分配方面。
  • 虚拟化支持:在支持虚拟化的系统中,VI和VQ资源的灵活分配非常关键,确保次控制器能够按需获取资源,尤其是在SR-IOV配置下。

这些结构和字段在多控制器和虚拟化环境中提供了重要的信息,能够帮助主机有效地管理和优化资源。