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

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

Blog Author

深入分析 NVM Express® Base Specification, revision 2.0b

3.1.3.16 CMBMSC – Controller Memory Buffer Memory Space Control(控制器内存缓冲区内存空间控制)

这个可选属性指定控制器如何使用主机提供的地址来引用控制器内存缓冲区(Controller Memory Buffer)。如果控制器支持控制器内存缓冲区(通过 CAP.CMBS 属性标识),则此属性是必需的。

字段解析:

  • Controller Base Address (CBA)
    此字段指定控制器内存缓冲区的控制器地址范围的 64 位物理地址的高 52 位。控制器内存缓冲区的基地址和大小共同确定其控制器地址范围。指定的地址必须满足以下条件:
  • 控制器内存缓冲区的地址范围不能大于 2^64 − 1
  • 如果启用了持久性内存区域的控制器内存空间(Persistent Memory Region),则控制器内存缓冲区的地址范围不能与持久性内存区域的地址范围重叠。

  • Controller Memory Space Enable (CMSE)
    此位指定是否允许主机提供的地址引用控制器内存缓冲区。如果 CMBSMSC.CRE 位被清除为 0,则此位无效,且控制器内存缓冲区的控制器内存空间未启用。如果此位设置为 1 且控制器基地址有效,则启用控制器内存缓冲区的控制器内存空间。

  • Capabilities Registers Enabled (CRE)
    此位指定是否启用了 CMBLOCCMBSZ 属性。如果此位设置为 1,则按 Figure 52Figure 53 中定义启用 CMBLOCCMBSZ。如果此位清除为 0,则 CMBLOCCMBSZ 都被清除为 0h


3.1.3.17 CMBSTS – Controller Memory Buffer Status(控制器内存缓冲区状态)

这是一个可选属性,用于指示控制器内存缓冲区的状态。如果控制器支持控制器内存缓冲区(由 CAP.CMBS 指示),则此属性是必需的。

字段解析:

  • Reserved
    该字段保留为 0h,供将来使用或为实现特定的扩展提供空间。

总结

这两个属性(CMBMSCCMBSTS)涉及到控制器内存缓冲区(CMB)的控制和状态。CMBMSC 允许控制器定义如何引用控制器内存缓冲区的内存空间,并确定是否允许主机使用该空间。CMBSTS 则提供了控制器内存缓冲区的当前状态。这些功能对于需要高速缓存和直接内存访问的存储系统至关重要,尤其是在高性能计算和数据存储系统中,控制器内存缓冲区的有效管理对于减少延迟和提高吞吐量非常重要。