PCIe配置与VPD管理 - 页码159
NVMe-MI 1 min read

PCIe配置与VPD管理 - 页码159

Blog Author

1. 管理端点与控制器重置交互(Reset Interaction)

控制器状态与操作响应

  • PCIe Reset 和控制器重置:即便控制器处于 PCIe Reset 状态,管理端点仍然会像处理启用的控制器一样处理来自管理控制器的请求。重置控制器(如 PCIe Reset)通常不会影响正在服务的请求消息,除非特别指定。
  • 控制器禁用或重置对请求消息的影响:如果控制器处于禁用状态或进行控制器级重置(例如 PCIe Reset),管理端点仍会继续服务已经接收到的请求消息,前提是这些请求消息的目标控制器未受到重置或禁用状态的影响。

操作的继续性

  • 操作处理的正常性:如果操作可以成功执行,但由于管理端点未完成某些必要步骤(如初始化媒体),导致返回错误响应或错误状态码,这会被视为错误,并可能导致管理控制器错误地标记 NVM 子系统为失败。
  • 控制器处于某些特定状态时的行为:如果控制器处于以下状态,某些 PCIe Command 的处理可能会受到限制,尽管这不被推荐:
  • 控制器处于 Controller Level Reset 状态,但未重置管理端点;
  • SR-IOV 虚拟功能未启用;
  • PCI Express Conventional Reset 中接收到的 PCIe Commands via MCTP over 2-Wire
  • PCI Express Function Level Reset (FLR) 状态下;
  • PCI Express 功能处于非 D0 电源状态
  • PCIe 链路不活跃(即不处于 DL_Active 状态)。

错误处理

  • PCIe Inaccessible 状态:如果收到的 PCIe Command 目标控制器处于上述状态之一,并且实施不支持在这些状态下处理命令,则该命令会返回 PCIe Inaccessible 状态。

低功耗状态

  • PCIe 低功耗状态的影响:如果控制器的 PCIe 链接 处于低功耗状态(如 PCIe ASPM),执行命令可能会导致该链路临时退出低功耗状态。

2. 电源丧失信号交互(Power Loss Signaling Interactions)

控制器响应电源丧失信号

  • 强制静止处理(FQ)紧急电源失败处理(EPF):当控制器响应电源丧失信号时,控制器进入不同的处理状态:
  • FQ Processing(强制静止处理中)
  • FQ Complete(强制静止完成状态)
  • EPF Processing Port Enabled(紧急电源失败处理中,端口启用状态)
  • EPF Complete Port Enabled(紧急电源失败完成状态,端口启用状态)
  • EPF Processing Port Disabled(紧急电源失败处理中,端口禁用状态)
  • EPF Complete Port Disabled(紧急电源失败完成状态,端口禁用状态)

不同处理状态的影响

  • 在上述状态中,控制器必须根据 电源丧失信号 指定的要求,执行相应的 强制静止处理紧急电源失败处理。这些处理状态确保在电源丧失情况下,系统能够安全地处理数据并减少损坏或丢失。

总结与实现考量

  1. 控制器重置与操作连续性:确保系统能够在控制器重置时继续处理请求。设计时需要处理控制器的重置状态与请求消息的正常服务,避免因重置导致操作中断。

  2. PCIe 命令处理限制:要注意在特定控制器状态下的命令处理限制,避免发送不支持的命令或遇到不可预料的行为。

  3. 电源丧失与紧急处理:系统设计时需考虑 电源丧失信号 交互,特别是在电源失败或紧急电源故障的情况下如何管理控制器的状态及其与外部设备的交互。

  4. 低功耗与正常操作:在低功耗状态下要确保 PCIe 链路的管理,避免因过度低功耗模式影响系统操作响应。

这些操作对硬件层面(如控制器状态、电源管理)和系统层面的命令服务(如 MCTPPCIe Commands)的实现提出了很高的要求,确保在各个状态下设备能够高效、可靠地工作。如果你有具体的实现或编程需求,可以进一步探讨如何在代码中高效管理这些状态和操作。