控制器寄存器与属性配置 - 第65页
NVME2.0协议解读 1 min read

控制器寄存器与属性配置 - 第65页

Blog Author

继续深入分析协议内容:NVM Express® Base Specification, revision 2.0b

3.1.3.5 CC – Controller Configuration(控制器配置)

该属性用于配置控制器的设置,主机软件在启用控制器之前需要设置多个重要参数。具体字段如下:

类型 重置值 描述
19:16 RW/RO 0h I/O Submission Queue Entry Size (IOSQES):此字段定义用于选定I/O命令集的I/O提交队列条目大小。
15:14 RW 00b Shutdown Notification (SHN):此字段用于在预期电源关闭时发起控制器关闭操作。
13:11 RW 000b Arbitration Mechanism Selected (AMS):此字段选择使用的仲裁机制。

字段解析

  1. I/O Submission Queue Entry Size (IOSQES)
  2. 描述:该字段定义I/O提交队列条目的大小,以字节为单位,必须是2的幂(例如,1, 2, 4, 8, 16等)。对于每个I/O命令集,必需的和最大值由 Identify Controller 数据结构中的 SQES 字段定义。
  3. 注意:如果存在I/O提交队列,任何修改此字段的写操作都将导致未定义的结果。如果控制器不支持I/O队列,则该字段为只读,值为0。

  4. Shutdown Notification (SHN)

  5. 描述:此字段用于在预期电源关闭时通知控制器执行关闭操作。包括正常关闭和急停关闭(突发关闭)两种模式。主机软件可以提前写入此字段以开始控制器关闭过程。
  6. 值定义
    • 00b:无通知,不会影响任何操作。
    • 01b:正常关闭通知。
    • 10b:突发关闭通知。
    • 11b:保留。
  7. 推荐实践:主机软件应在发生电源关闭或变更PCI电源管理状态前,写入此字段。写入该字段后,主机应参考 CSTS.STCSTS.SHST 来确认控制器关闭处理是否完成。

  8. Arbitration Mechanism Selected (AMS)

  9. 描述:此字段选择控制器使用的仲裁机制,仲裁机制定义了控制器如何决定多个I/O命令的处理顺序。值为“000b”表示使用标准的“轮询仲裁”,而“001b”表示使用“加权轮询仲裁与紧急优先级类”。
  10. 值定义
    • 000b:标准轮询仲裁。
    • 001b:加权轮询仲裁,支持紧急优先级类。
    • 010b 到 110b:保留。
    • 111b:厂商特定的仲裁机制。
  11. 注意:仅当 CC.EN 设置为‘0’时,主机软件才能修改此字段。如果此字段设置为不受支持的值,则行为未定义。

总结:

  • I/O Submission Queue Entry Size (IOSQES) 提供了I/O提交队列条目的大小配置,影响数据传输的效率和控制器的资源分配。
  • Shutdown Notification (SHN) 允许主机控制控制器的关机行为,支持正常关机和突发关机操作,确保数据处理的完整性。
  • Arbitration Mechanism Selected (AMS) 决定了控制器的命令处理顺序策略,影响I/O队列的管理方式,允许根据实际应用场景选择不同的仲裁机制。

这些配置为控制器的管理提供了灵活性,帮助根据具体需求优化性能和确保可靠性。