控制器寄存器与属性配置 - 第77页
深入分析 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:分钟-
10b到11b:保留 -
BIR (Base Indicator Register):这个字段指示 Persistent Memory Region 的 Base Address Register(BAR),它指定了持久内存区域的地址和大小。有效值为:
010b、011b、100b、101b。 -
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 属性 控制持久内存区域的启用与禁用状态,并确保在适当的条件下访问持久内存。
这两个属性一起工作,帮助系统有效管理持久内存区域,确保数据的完整性和系统的可靠性。