NVM子系统架构 - CAP - Controller Capabilities (控制器能力) 属性解析 (第60页)
NVME2.0协议解读 1 min read

NVM子系统架构 - CAP - Controller Capabilities (控制器能力) 属性解析 (第60页)

Blog Author

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

在《NVM Express® Base Specification, revision 2.0b》中,CAP(控制器能力)属性用于描述控制器的基本能力和特性。CAP属性以64位的字段形式存在,主机可以通过这些字段了解控制器支持的功能。

字段解析

以下是CAP属性中的一些关键字段:

类型 重置值 描述
45 RO 实现特定 启动分区支持(BPS):表示控制器是否支持启动分区。
44:37 RO 实现特定 命令集支持(CSS):表示控制器支持的I/O命令集类型。
36 RO 实现特定 NVM子系统复位支持(NSSRS):表示控制器是否支持NVM子系统复位功能。
35:32 RO 实现特定 门铃步幅(DSTRD):表示门铃属性之间的跨度,控制每个队列的门铃指示器之间的间隔大小。

字段详解

  1. 启动分区支持(BPS)
  2. BPS位指示控制器是否支持启动分区(Boot Partitions)。如果设置为‘1’,则表示控制器支持启动分区功能;如果设置为‘0’,则表示不支持启动分区。启动分区可以在系统启动时加载特定的固件或操作系统。

  3. 命令集支持(CSS)

  4. 该字段指示控制器支持的I/O命令集类型。特别地,Bit 7表示是否没有支持I/O命令集。

    • Bit 0:表示控制器是否支持NVM命令集。如果设置为‘1’,控制器支持NVM命令集(如NVM命令集)。
    • Bit 6:指示控制器是否支持一个或多个I/O命令集,并支持Identify I/O Command Set数据结构。
    • Bit 7:如果设置为‘1’,表示没有支持I/O命令集,即控制器只支持管理命令集。
  5. NVM子系统复位支持(NSSRS)

  6. NSSRS位指示控制器是否支持NVM子系统复位功能。设置为‘1’表示支持该功能,‘0’则表示不支持该功能。在某些情况下,控制器需要支持NVM子系统复位,以便于系统进行重置操作。

  7. 门铃步幅(DSTRD)

  8. DSTRD字段定义了门铃属性之间的间隔,即门铃的步幅。该字段是32位大小的,每个提交队列和完成队列都有一个相应的门铃属性。如果DSTRD设置为‘0’,表示门铃间隔为4字节;如果设置为其他值,则步幅会变大。此设置对于内存中的提交队列和完成队列非常重要,用来定义队列和门铃之间的布局。

总结

  • CAP属性字段的设计是为了描述控制器的基本能力,允许主机了解控制器是否支持特定功能(如启动分区、命令集、复位等)。
  • 通过这些字段,主机能够了解如何与控制器交互,以及如何配置相关的硬件资源。
  • 不同的控制器类型(如I/O控制器、管理控制器、发现控制器)将根据其能力和需求提供不同的支持。