控制器寄存器与属性配置 - 第65页
继续深入分析协议内容:NVM Express® Base Specification, revision 2.0b
3.1.3.5 CC – Controller Configuration(控制器配置)
该属性用于配置控制器的设置,主机软件在启用控制器之前需要设置多个重要参数。具体字段如下:
位 | 类型 | 重置值 | 描述 |
---|---|---|---|
19:16 | RW/RO | 0h | I/O Submission Queue Entry Size (IOSQES):此字段定义用于选定I/O命令集的I/O提交队列条目大小。 |
15:14 | RW | 00b | Shutdown Notification (SHN):此字段用于在预期电源关闭时发起控制器关闭操作。 |
13:11 | RW | 000b | Arbitration Mechanism Selected (AMS):此字段选择使用的仲裁机制。 |
字段解析
- I/O Submission Queue Entry Size (IOSQES):
- 描述:该字段定义I/O提交队列条目的大小,以字节为单位,必须是2的幂(例如,1, 2, 4, 8, 16等)。对于每个I/O命令集,必需的和最大值由
Identify Controller
数据结构中的SQES
字段定义。 -
注意:如果存在I/O提交队列,任何修改此字段的写操作都将导致未定义的结果。如果控制器不支持I/O队列,则该字段为只读,值为0。
-
Shutdown Notification (SHN):
- 描述:此字段用于在预期电源关闭时通知控制器执行关闭操作。包括正常关闭和急停关闭(突发关闭)两种模式。主机软件可以提前写入此字段以开始控制器关闭过程。
- 值定义:
- 00b:无通知,不会影响任何操作。
- 01b:正常关闭通知。
- 10b:突发关闭通知。
- 11b:保留。
-
推荐实践:主机软件应在发生电源关闭或变更PCI电源管理状态前,写入此字段。写入该字段后,主机应参考
CSTS.ST
和CSTS.SHST
来确认控制器关闭处理是否完成。 -
Arbitration Mechanism Selected (AMS):
- 描述:此字段选择控制器使用的仲裁机制,仲裁机制定义了控制器如何决定多个I/O命令的处理顺序。值为“000b”表示使用标准的“轮询仲裁”,而“001b”表示使用“加权轮询仲裁与紧急优先级类”。
- 值定义:
- 000b:标准轮询仲裁。
- 001b:加权轮询仲裁,支持紧急优先级类。
- 010b 到 110b:保留。
- 111b:厂商特定的仲裁机制。
- 注意:仅当
CC.EN
设置为‘0’时,主机软件才能修改此字段。如果此字段设置为不受支持的值,则行为未定义。
总结:
- I/O Submission Queue Entry Size (IOSQES) 提供了I/O提交队列条目的大小配置,影响数据传输的效率和控制器的资源分配。
- Shutdown Notification (SHN) 允许主机控制控制器的关机行为,支持正常关机和突发关机操作,确保数据处理的完整性。
- Arbitration Mechanism Selected (AMS) 决定了控制器的命令处理顺序策略,影响I/O队列的管理方式,允许根据实际应用场景选择不同的仲裁机制。
这些配置为控制器的管理提供了灵活性,帮助根据具体需求优化性能和确保可靠性。