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

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

Blog Author

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

在《NVM Express® Base Specification, revision 2.0b》文档中,CAP(控制器能力)是一个非常重要的控制器属性。它用于描述控制器的基本能力和特性。具体地,CAP属性以64位字段的形式存在,通过该属性,主机可以了解控制器是否支持某些高级功能,比如内存页大小、持久存储区域支持、控制器内存缓冲区等。

字段解析

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

类型 重置值 描述
60:59 RO 实现特定 控制器准备模式支持(CRMS): 表示控制器的准备模式是否支持。
0 RO ‘1’ 媒体支持下的控制器就绪(CRWMS): 如果设置为‘1’,则表示控制器支持“媒体支持下的控制器就绪”模式。
1 RO ‘0’ 独立于媒体的控制器就绪(CRIMS): 如果设置为‘1’,表示控制器支持“独立于媒体的控制器就绪”模式。
58 RO 实现特定 NVM子系统关机支持(NSSS): 表示控制器是否支持NVM子系统关机功能。
57 RO 实现特定 控制器内存缓冲区支持(CMBS): 如果设置为‘1’,则表示控制器支持内存缓冲区,并且主机可以使用提供的地址引用该缓冲区。
56 RO 实现特定 持久内存区域支持(PMRS): 如果设置为‘1’,表示控制器支持持久内存区域。
55:52 RO 实现特定 最大内存页大小(MPSMAX): 表示控制器支持的最大主机内存页大小。
51:48 RO 实现特定 最小内存页大小(MPSMIN): 表示控制器支持的最小主机内存页大小。
47:46 RO 实现特定 控制器电源作用域(CPS): 指示控制器主电源的作用范围。

字段详解

  1. 控制器准备模式支持(CRMS)
  2. CRWMS(Controller Ready With Media Support):如果设置为‘1’,则表示控制器支持“控制器准备就绪且包含媒体支持”模式。如果设置为‘0’,则表示控制器不支持该模式。
  3. CRIMS(Controller Ready Independent of Media Support):如果设置为‘1’,则表示控制器支持“独立于媒体的控制器准备就绪”模式。如果设置为‘0’,则表示控制器不支持该模式。

  4. NVM子系统关机支持(NSSS):此位指示控制器是否支持NVM子系统的关机功能。如果设置为‘1’,表示支持NVM子系统的关机功能,反之则为‘0’。

  5. 控制器内存缓冲区支持(CMBS):如果设置为‘1’,表示控制器支持内存缓冲区,并且允许主机通过特定的地址来访问该缓冲区。

  6. 持久内存区域支持(PMRS):如果设置为‘1’,表示控制器支持持久内存区域功能。

  7. 最大内存页大小(MPSMAX)与最小内存页大小(MPSMIN):这些字段指示主机可配置的最大和最小内存页大小。在控制器的硬件限制下,主机不得配置超出这些范围的内存页大小。

  8. 控制器电源作用域(CPS):此字段表示控制器的电源控制范围。它有几个值来定义作用范围:

  9. 00b:未报告。
  10. 01b:控制器作用范围。
  11. 10b:域作用范围(表示NVM子系统支持多个域)。
  12. 11b:NVM子系统作用范围(表示NVM子系统不支持多个域)。

总结

  • CAP属性是控制器能力的基础描述,帮助主机软件了解控制器是否具备某些功能,如内存缓冲区、持久存储、控制器准备就绪模式等。
  • RO(只读)表示这些位只能由主机读取,不能写入;RW(读写)则表示这些字段可以进行读写。
  • 各字段的配置对系统性能和操作模式有重要影响,主机可基于这些字段的设置进行优化和配置控制器的使用。