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

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

Blog Author

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

3.1.3.22 PMRCAP – Persistent Memory Region Capabilities

这个属性定义了持久内存区域的能力,只有当控制器支持持久内存区域功能时,才会启用此属性。

字段解析: - PMRWBM (Persistent Memory Region Write Barrier Mechanisms):这个字段列出了可以确保先前写入的持久性机制。每个机制对应一个位,若该位为 1,表示支持相应的持久性机制。此字段必须至少有一个位被设置为 1。具体机制包括: - 位 0:任何持久内存区域地址的内存读取完成,确保所有先前的写入已完成且具有持久性。 - 位 1:读取 PMRSTS 属性,确保所有先前的写入已完成且具有持久性。

  • PMRTU (Persistent Memory Region Time Units):定义持久内存区域使用的时间单位。其值可以是:
  • 00b:500 毫秒
  • 01b:分钟
  • 10b11b:保留

  • BIR (Base Indicator Register):这个字段指示 Persistent Memory Region 的 Base Address Register(BAR),它指定了持久内存区域的地址和大小。有效值为:010b011b100b101b

  • WDS (Write Data Support):如果该位设置为 1,表示控制器支持将数据和元数据写入持久内存区域。如果该位设置为 0,则不允许将数据和元数据写入持久内存区域。

  • RDS (Read Data Support):如果该位设置为 1,表示控制器支持从持久内存区域读取数据和元数据。如果该位设置为 0,则不允许从持久内存区域读取数据和元数据。


3.1.3.23 PMRCTL – Persistent Memory Region Control

这个属性控制持久内存区域的操作。如果控制器不支持持久内存区域功能,则该属性会被清除。

字段解析: - EN (Enable):当该位设置为 1 时,持久内存区域准备好处理 PCI Express 内存读取和写入请求。一旦 PMRSTS.NRDY 被清除为 0,则表示该区域已准备好。一旦该位被清除为 0,则持久内存区域会被禁用,并且 PMRSTS.NRDY 会被设置为 1,表示该区域准备重新启用。

功能: - PMRCTL 帮助控制持久内存区域的启用与禁用,确保只有在正确的状态下,系统才能对持久内存区域进行读写操作。


总结

  • PMRCAP 属性 定义了控制器是否支持和如何支持持久内存区域的读写操作。通过设置不同的机制,控制器能够确保数据的持久性,这对于确保系统可靠性至关重要。

  • PMRCTL 属性 控制持久内存区域的启用与禁用状态,并确保在适当的条件下访问持久内存。

这两个属性一起工作,帮助系统有效管理持久内存区域,确保数据的完整性和系统的可靠性。