特性配置 - 1. Controller Type (CNTRLTYPE) (第257页)
NVME2.0协议解读 1 min read

特性配置 - 1. Controller Type (CNTRLTYPE) (第257页)

Blog Author

在《NVM Express® Base Specification, revision 2.0b》文档中,Identify Controller数据结构继续详细描述了控制器的特性,特别是控制器类型(CNTRLTYPE)FRU全球唯一标识符(FGUID)命令重试延迟时间(CRDT1、CRDT2、CRDT3)NVM子系统报告(NVMSR)等字段。以下是对这些字段及其功能的深入分析:

1. Controller Type (CNTRLTYPE)

  • 描述:该字段指定控制器的类型。其值用于指示控制器是何种类型的设备,通常有I/O控制器、发现控制器或管理控制器等类型。实现符合NVM Express Base Specification revision 1.4或更高版本的控制器,必须报告控制器类型。

  • 值的定义

  • 0h:保留,表示控制器类型未报告。这个值在1.4版本及之后的规范中不可用。
  • 1h:I/O控制器,表示该控制器是处理I/O操作的控制器。
  • 2h:发现控制器,表示该控制器用于发现其他控制器或资源。
  • 3h:管理控制器,表示该控制器用于执行管理相关任务。
  • 4h到FFh:保留。

  • 作用:该字段帮助主机识别控制器的角色,并根据不同的控制器类型执行适当的操作。例如,I/O控制器处理数据的读写,发现控制器可能用于网络或设备发现,而管理控制器负责维护系统配置或管理任务。

2. FRU Globally Unique Identifier (FGUID)

  • 描述:该字段包含一个128位的值,用于唯一标识某个可更换单元(Field Replaceable Unit,FRU)。FRU是硬件系统中的可拆卸组件,通常是存储设备或其他可维护组件。这个值在FRU的整个生命周期中保持固定。

  • 格式

  • 使用EUI-64设计格式,包含16字节。
  • Bytes 122:120:包含由IEEE注册机构分配的24位组织唯一标识符(OUI)。
  • Bytes 127:123:包含该组织分配的扩展标识符。
  • Bytes 119:112:包含供应商特定的扩展标识符。
  • 如果该字段未实现,则该字段包含值为0h的内容。

  • 作用:FGUID为每个FRU提供唯一标识符,有助于识别和管理存储设备或其他硬件组件,特别是在大规模部署和维护时。

3. Command Retry Delay Time (CRDT1、CRDT2、CRDT3)

这三个字段分别表示不同命令重试延迟的时间(单位为100毫秒),用于控制命令的重试延迟。

  • CRDT1:如果CQE中的Do Not Retry (DNR)位被清除为‘0’,并且Command Retry Delay (CRD)字段被设置为01b,那么该字段表示命令重试延迟时间。
  • CRDT2:如果CQE中的DNR位被清除为‘0’,并且CRD字段被设置为10b,那么该字段表示命令重试延迟时间。
  • CRDT3:如果CQE中的DNR位被清除为‘0’,并且CRD字段被设置为11b,那么该字段表示命令重试延迟时间。

这些字段在命令执行时起到了重试的控制作用,帮助确保系统能够在一定的时间间隔内重新尝试命令,而不会立即失败。

4. NVM Subsystem Report (NVMSR)

  • 描述:该字段报告与NVM子系统相关的信息。如果控制器符合NVMe Management Interface Specification(NVMe管理接口规范),则至少会设置该字段中的一个位为‘1’;如果不符合该规范,则该字段清除为0h。

  • 位的定义

  • Bits 7:2:保留。
  • Bit 1 - NVMe Enclosure (NVMEE):如果设置为‘1’,表示NVM子系统是NVMe机架的一部分。如果为‘0’,则表示NVM子系统不属于NVMe机架。
  • Bit 0 - NVMe Storage Device (NVMESD):如果设置为‘1’,表示NVM子系统是NVMe存储设备的一部分。如果为‘0’,则表示NVM子系统不是NVMe存储设备的一部分。

  • 作用:该字段为系统提供NVM子系统的配置报告,帮助识别NVM子系统的架构和组成部分,是否属于NVMe机架或存储设备,这对于系统的部署和管理非常重要。

5. 总结

这些字段为控制器的功能和配置提供了详细的描述,包括控制器类型、唯一标识符、命令重试策略和子系统报告等:

  • 控制器类型:有助于区分不同类型的控制器(如I/O控制器、管理控制器等),适用于系统中多控制器的管理。
  • FGUID:通过全球唯一标识符帮助跟踪和管理可更换单元(FRU),便于系统的维护和硬件识别。
  • 命令重试延迟:提供了命令重试机制的延迟时间控制,增强了系统的容错性和稳定性。
  • NVM子系统报告:帮助识别NVM子系统是否属于NVMe机架或存储设备的一部分,有助于系统架构的规划和部署。

这些字段提供了丰富的信息,可以帮助管理者更好地配置和监控存储系统,提升系统的可靠性、灵活性和可维护性。