控制器寄存器 - CAP - Controller Capabilities (控制器能力) 属性解析 - 继续 (第61页)
NVME2.0协议解读 1 min read

控制器寄存器 - CAP - Controller Capabilities (控制器能力) 属性解析 - 继续 (第61页)

Blog Author

CAP - Controller Capabilities (控制器能力) 属性解析 - 继续

在《NVM Express® Base Specification, revision 2.0b》中,CAP(控制器能力)属性字段不仅描述了控制器的基本功能,还包括了如何在不同状态下管理控制器的行为,例如超时设置、仲裁机制等。下面是对CAP字段中更多部分的详细解释。

字段解析

类型 重置值 描述
31:24 RO 实现特定 超时 (TO):主机软件应等待CSTS.RDY状态变化的最大时间(单位:500毫秒)。
18:17 RO 实现特定 支持的仲裁机制(AMS):表示控制器支持的仲裁机制。每个比特位对应一种仲裁机制。
16 RO 实现特定 要求连续的队列(CQR):如果设置为1,表示I/O提交队列和I/O完成队列要求物理连续。

字段详解

  1. 超时 (TO)
  2. TO字段表示主机软件应等待CSTS.RDY0变为1的最大时间,或者从1变为0的最大时间。这种状态变化可能是由于控制器的断电、重启或固件更新等引起的。
  3. TO字段的值以500毫秒为单位,最大值为FFh,表示最长超时127.5秒。
  4. 如果CC.CRIME位被设置为1(即控制器在没有媒体的情况下独立就绪),则会使用CRTO.CRIMT来定义超时。如果CC.CRIME位为0(即控制器与媒体一同就绪),则使用CRTO.CRWMT值。

  5. 支持的仲裁机制(AMS)

  6. AMS字段表示控制器支持的仲裁机制。这个字段的每个比特位表示不同的仲裁机制:
    • Bit 0:支持带有紧急优先级类别的加权轮询(Weighted Round Robin with Urgent Priority Class)。
    • Bit 1:表示厂商特定的仲裁机制。
  7. 由于所有控制器都必须支持加权轮询仲裁机制,所以该机制不在这里列出。
  8. Discovery控制器应将此字段清除为0h,因为它们不使用仲裁机制。

  9. 要求连续的队列(CQR)

  10. CQR位表示控制器是否要求I/O提交队列I/O完成队列在物理上是连续的。如果该位设置为1,表示队列必须物理连续;如果设置为0,则支持非连续的队列。
  11. 如果该位设置为1,则在创建I/O提交队列I/O完成队列时,Physically Contiguous位(CDW11.PC)也应设置为1

总结

这些字段进一步强化了控制器的配置和行为管理能力。例如,超时设置使得主机能够了解控制器从非活动状态到就绪状态的最大等待时间,而仲裁机制字段则确保控制器在多任务并发情况下如何公平地分配资源。要求连续的队列字段帮助确定队列在物理内存中的布局,以确保数据一致性和提高性能。

这些设置对于系统的配置和优化非常重要,特别是在高并发和高负载的场景中,能够有效地管理和调度控制器资源。