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

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

Blog Author

在深入分析 NVM Express® Base Specification, revision 2.0b 中的内容时,以下是对各个字段的详细解释,帮助理解其功能和作用。

1. CMBSTS (Controller Memory Buffer Status) - Offset 58h

CBAI (Controller Base Address Invalid):

  • 描述:该字段表示控制器是否未能启用控制器内存缓冲区的内存空间。如果 CMBMSC.CBA 无效,且 CMBMSC.CRECMBMSC.CMSE 被设置为 1,则该字段将被设置为 1,表示控制器基础地址无效。否则,它将清除为 0,表示控制器基础地址有效。

2. CMBEBS (Controller Memory Buffer Elasticity Buffer Size) - Offset 5Ch

此字段提供关于 CMB 弹性缓冲区大小的信息。

  • CMB Elasticity Buffer Size Base (CMBWBZ)
  • 描述:表示 CMB 弹性缓冲区的大小。该值等于该字段中的值与 CMB Elasticity Buffer Size Units 字段指定的单位相乘。

  • Read Bypass Behavior

  • 描述:当内存读取操作不与 CMB 弹性缓冲区中的任何内存写入操作发生冲突时:
    • 如果该位为 1,则该内存读取操作会绕过这些内存写入。
    • 如果该位为 0,则内存读取操作可能绕过这些内存写入。
  • 重要性:此位可以影响数据的读取行为,尤其是在高并发情况下,影响性能优化。

  • CMB Elasticity Buffer Size Units (CMBSZU)

  • 描述:此字段指定了 CMB 弹性缓冲区大小字段的粒度。例如:
    • 0h 表示字节(Bytes)
    • 1h 表示 1 KiB
    • 2h 表示 1 MiB
    • 3h 表示 1 GiB
    • 4h - Fh 为保留值

3. CMBSWTP (Controller Memory Buffer Sustained Write Throughput) - Offset 60h

此字段提供 CMB 持续写入吞吐量的信息,帮助主机了解 CMB 在特定条件下的写入性能。

  • CMB Sustained Write Throughput (CMBSWTV)
  • 描述:表示 CMB 在最大负载大小下的持续写入吞吐量。该吞吐量是根据 CMB Sustained Write Throughput Units 字段中的单位来计算的,最大负载大小由 NVMe 传输绑定规范(如 PCIe TLP 负载大小)确定。
  • 单位:吞吐量的单位由 CMB Sustained Write Throughput Units 字段指定。

总结:

这些字段主要涉及控制器内存缓冲区(CMB)的状态、弹性缓冲区的大小及行为、以及持续写入吞吐量等性能参数。它们的作用是帮助主机更好地理解和管理 CMB 的资源,优化数据传输过程,特别是在高吞吐量、高并发的系统环境下。

如果你有其他具体字段或细节需要更深入的解析,欢迎继续提问!