控制器寄存器与属性配置 - 第64页
继续深入分析协议内容:NVM Express® Base Specification, revision 2.0b
3.1.3.4 INTMC – Interrupt Mask Clear(中断掩码清除)
INTMC属性用于解除中断掩蔽。类似于INTMS,它可以按位解除对中断向量的掩蔽,使中断得以触发。具体字段如下:
位 | 类型 | 重置值 | 描述 |
---|---|---|---|
31:00 | RWC | 0h | Interrupt Vector Mask Clear (IVMC):该字段按位有效。如果将‘1’写入某一位,则解除对应中断向量的掩蔽,使其能够触发中断。写入‘0’没有任何效果。读取时,返回当前控制器中断掩蔽值(而不是该属性的值)。如果某个位的值为‘1’,则对应的中断向量被掩蔽;如果该位为‘0’,则对应的中断向量没有被掩蔽。 |
字段解析
- Interrupt Vector Mask Clear (IVMC):此字段允许解除中断向量的掩蔽。通过写入‘1’来清除掩蔽,使得该中断向量可以触发。写入‘0’不会影响任何内容。读取时,它返回当前的中断掩蔽状态。
3.1.3.5 CC – Controller Configuration(控制器配置)
CC属性用于配置控制器的设置,主机软件需要在启用控制器之前设置几个重要的参数,如Arbitration Mechanism Selected (AMS)、Memory Page Size (MPS) 和 I/O Command Set Selected (CSS)。配置这些字段后,主机可以通过设置 CC.EN
位为 ‘1’ 来启用控制器。
位 | 类型 | 重置值 | 描述 |
---|---|---|---|
31:25 | RO | 0h | 保留字段 |
24 | RW/RO | 0b | Controller Ready Independent of Media Enable (CRIME):此字段控制控制器的就绪模式。在控制器启用时,该字段决定控制器的就绪模式。 |
23:20 | RW/RO | 0h | I/O Completion Queue Entry Size (IOCQES):此字段定义I/O完成队列条目的大小,单位为字节,且必须是2的幂。 |
字段解析
- Controller Ready Independent of Media Enable (CRIME):该字段决定启用控制器时是否采用“Controller Ready Independent of Media”模式。如果该字段为‘1’,则启用控制器时,控制器将独立于媒体就绪。若为‘0’,则控制器将在媒体准备就绪后才会完全启用。
- 0b:启用控制器时,控制器依赖于媒体就绪。
-
1b:启用控制器时,控制器独立于媒体就绪。
-
I/O Completion Queue Entry Size (IOCQES):该字段定义I/O完成队列的条目大小。控制器根据所选的I/O命令集进行设置,值必须是2的幂(例如,1, 2, 4, 8, 16等)。如果控制器不支持I/O队列,则该字段是只读的,值为0。
总结:
- INTMC (Interrupt Mask Clear) 使得主机可以解除掩蔽中断,恢复某些中断的触发。
- CC (Controller Configuration) 提供了配置控制器的核心功能,如控制器就绪模式、I/O完成队列大小等设置。在控制器启用之前,必须正确设置这些字段以确保正常操作。
这些字段和设置为控制器的操作提供了灵活的配置选项,确保可以根据不同的应用需求进行定制,尤其是在I/O队列管理和中断处理上。