高级特性 - Keep Alive Timer(保持活动定时器)功能 (第313页)
NVME2.0协议解读 1 min read

高级特性 - Keep Alive Timer(保持活动定时器)功能 (第313页)

Blog Author

NVM Express® Base Specification, revision 2.0b 中,关于 Keep Alive TimerHost Controlled Thermal Management(HCTM)功能的深入分析如下:

Keep Alive Timer(保持活动定时器)功能

Keep Alive Timeout(KATO)字段(Figure 341)

  • Keep Alive Timeout (KATO)
  • 该字段指定 Keep Alive 特性的超时时间(单位:毫秒)。控制器会根据 KAS 字段(在 Identify Controller 数据结构 中定义)进行四舍五入。如果该字段被清除为 0h,则表示禁用 Keep Alive Timer 功能。
  • 对于不需要使用 Keep Alive 特性的 NVMe 传输(例如 NVMe over PCIe),该字段的默认值为 0h
  • 对于需要使用 Keep Alive 特性的 NVMe 传输(例如 RDMA 和 TCP),默认值为 1D4C0h(即 120,000 毫秒或 2 分钟),并根据 KAS 字段的粒度进行四舍五入。
  • KATO 用于控制在没有活动时,控制器多久检查一次是否仍然与主机保持连接。该定时器有助于在长时间无操作的情况下保持连接的活跃性。

应用场景与配置

  • Keep Alive Timer 主要用于防止在长时间无操作时,控制器和主机之间的连接失效,尤其是在支持 RDMATCP 的传输中非常重要。通过设置适当的超时时间,可以保证即使在没有数据传输的情况下,控制器和主机之间的连接也不会丢失。

Host Controlled Thermal Management(主机控制的热管理)功能

Thermal Management Temperature 1(TMT1)字段(Figure 342)

  • Thermal Management Temperature 1 (TMT1)
  • 该字段指定温度(单位:开尔文),当控制器开始过渡到较低功率活动功率状态时(例如,进行轻度节流),或者执行厂商特定的热管理动作时,目的是在不显著影响性能的情况下尝试降低 Composite Temperature(复合温度)。
  • TMT1 设置为 0h 时,表示禁用此部分功能。
  • 控制器支持的温度范围由 Identify Controller 数据结构 中的 Minimum Thermal Management TemperatureMaximum Thermal Management Temperature 字段指定。
  • 如果主机尝试设置该字段为低于 Minimum Thermal Management Temperature 或高于 Maximum Thermal Management Temperature 的值,命令将中止并返回 Invalid Field in Command 状态码。
  • 如果 TMT1 设置为大于或等于 Thermal Management Temperature 2 的值(若 TMT2 字段非零),命令也会中止。

温度阈值与节能策略

  • TMT1 功能可用于在控制器的温度超过一定阈值时启动温度管理措施,降低功耗并尝试减缓温度上升。这种温控措施通常会影响性能(例如,轻度节流),但可以有效地避免过热。
  • TMT1 的值设置不当可能导致控制器的热管理措施无法正确执行,因此确保该值位于支持的范围内非常重要。

总结与应用

  • Keep Alive Timer 功能对于保持系统在长时间空闲状态下的稳定性至关重要,尤其是对于支持 RDMA 或 TCP 等协议的 NVMe 传输,它确保控制器和主机之间的通信不中断。

  • Host Controlled Thermal Management (HCTM) 功能使主机能够控制和调整控制器的温度管理策略,确保在温度过高时采取适当的降温措施。通过合理设置温度阈值,系统可以有效避免过热问题,从而保持系统的稳定性和长期可靠性。

这些特性在高性能存储系统和数据中心的温度管理和通信稳定性上起着重要作用,有助于提升系统的整体效能和可靠性。