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

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

Blog Author

继续深入分析协议:NVM Express® Base Specification, revision 2.0b

3.1.3.5 CC – Controller Configuration(控制器配置) (续)

类型 重置值 描述
10:07 RW 0h Memory Page Size (MPS):此字段指示主机内存页的大小。内存页大小是 (2 ^ (12 + MPS)),因此最小内存页大小为4KiB,最大内存页大小为128MiB。该值由主机软件设置,并应为 CAP.MPSMAXCAP.MPSMIN 字段指示的支持值。此字段只能在 CC.EN 设置为‘0’时修改。
06:04 RW 000b I/O Command Set Selected (CSS):此字段指定选定的I/O命令集或命令集。此字段只能在控制器禁用时(即 CC.EN 为‘0’时)修改。
03:01 RO 000b Reserved:保留字段。

字段解析

  1. Memory Page Size (MPS)
  2. 描述:此字段表示主机内存页的大小,单位为字节。通过设置该字段,主机可以定义内存页的大小,范围从4KiB到128MiB。该值的计算方式为 2 ^ (12 + MPS)
  3. 注意:这个值必须在 CAP.MPSMAX(最大内存页大小)和 CAP.MPSMIN(最小内存页大小)字段定义的范围内。此字段仅在 CC.EN 被清除(即控制器被禁用)时才能修改,对于 Discovery 控制器,此字段被清除为0。

  4. I/O Command Set Selected (CSS)

  5. 描述:此字段选择已启用的I/O命令集。必须在控制器禁用(即 CC.EN 为‘0’)时修改。所选的I/O命令集将用于所有I/O提交队列。
  6. 值定义
    • 000b:选择NVM命令集。
    • 001b 到 101b:保留。
    • 110b:选择所有受支持的I/O命令集。支持的命令集会在 Identify I/O Command Set 数据结构中报告。
    • 111b:仅支持Admin命令集,不支持任何I/O命令集。如果仅支持Admin命令集,则在I/O提交队列上提交的命令和在Admin提交队列上提交的I/O命令集特定的Admin命令会以“Invalid Command Opcode”状态完成。
  7. 注意:对于 Discovery 控制器,此属性应被清除为 000b

总结:

  • Memory Page Size (MPS) 允许控制器设置内存页大小,它影响主机内存管理的效率,并且设置时必须符合控制器的最大和最小支持范围。
  • I/O Command Set Selected (CSS) 让控制器选择其支持的I/O命令集,这对整个存储系统的操作和性能有很大影响。通过选择不同的命令集,系统可以支持不同类型的数据操作,增强灵活性。

这些配置参数在控制器初始化和管理中起到了重要作用,保证了在不同硬件和系统配置下的兼容性与优化。