特性配置 - 1. 可选异步事件支持(OAES) (第254页)
NVME2.0协议解读 1 min read

特性配置 - 1. 可选异步事件支持(OAES) (第254页)

Blog Author

在《NVM Express® Base Specification, revision 2.0b》文档中,Identify命令的Identify Controller数据结构继续详细描述了可选的异步事件支持(OAES)字段。以下是对该字段及其各个子字段的深入分析:

1. 可选异步事件支持(OAES)

  • 描述:该字段用于指示控制器是否支持可选的异步事件。异步事件是指控制器在发生某些事件时会主动向主机报告的事件,而不需要主机主动查询。OAES字段包含了控制器是否支持这些异步事件的标志。重要的是,控制器在没有被主机软件启用之前,不能发送任何这些可选的异步事件。

  • 格式:该字段的每一位对应一个特定的异步事件支持情况,以下是各个子字段的详细描述:

2. 各子字段的描述

  • Bit 31:如果设置为‘1’,则表示控制器支持发送Discovery Log Page Change Notifications(发现日志页面变化通知)。如果设置为‘0’,则表示控制器不支持该事件。

  • Bits 30:28:保留字段。

  • Bit 27:如果设置为‘1’,则表示控制器支持发送Zone Descriptor Changed Notices(区域描述符变化通知)事件,并且支持相关的Changed Zone List log page(变化的区域列表日志页面)。如果设置为‘0’,则表示控制器不支持该事件和日志页面。该事件与Zoned Namespace命令集相关。

  • Bits 26:16:保留字段。

  • Bit 15:如果设置为‘1’,则表示控制器支持Normal NVM Subsystem Shutdown event(正常的NVM子系统关机事件)。如果设置为‘0’,则表示控制器不支持此事件。

  • Bit 14:如果设置为‘1’,则表示控制器支持Endurance Group Event Aggregate Log Page Change Notices(耐久组事件聚合日志页面变化通知)。如果设置为‘0’,则表示控制器不支持此事件。

  • Bit 13:如果设置为‘1’,则表示控制器支持LBA Status Information Alert Notices(LBA状态信息警告通知)事件,该事件与NVM命令集相关。如果设置为‘0’,则表示控制器不支持此事件。

  • Bit 12:如果设置为‘1’,则表示控制器支持Predictable Latency Event Aggregate Log Change Notices(可预测延迟事件聚合日志变化通知)。如果设置为‘0’,则表示控制器不支持此事件。

  • Bit 11:如果设置为‘1’,则表示控制器支持发送Asymmetric Namespace Access Change Notices(不对称命名空间访问变化通知)。如果设置为‘0’,则表示控制器不支持该事件。

  • Bit 10:保留字段。

  • Bit 9:如果设置为‘1’,则表示控制器支持Firmware Activation Notices(固件激活通知)事件。如果设置为‘0’,则表示控制器不支持该事件。

  • Bit 8:如果设置为‘1’,则表示控制器支持Namespace Attribute Notices(命名空间属性通知)事件,并且支持相关的Changed Namespace List log page(变化的命名空间列表日志页面)。如果设置为‘0’,则表示控制器不支持该事件和日志页面。

  • Bits 7:0:保留字段。

3. 总结

  • OAES字段的目的是为控制器提供一个灵活的异步事件报告机制。控制器可以根据支持的事件类型,向主机主动发送不同的通知。这些事件通知使得主机能够即时获取控制器或命名空间的状态变化,极大地增强了系统的响应性和管理能力。

  • 其中,某些事件(如发现日志变化、命名空间属性变化、固件激活通知等)对于系统的健康管理、性能监控和容错机制至关重要。了解哪些事件被支持,可以帮助开发者根据实际需求启用或禁用这些事件。

  • OAES字段确保了控制器在发送异步事件时的正确性,特别是在一些事件需要根据系统配置或特定命令集的支持来启用时。此外,控制器在没有启用的情况下,不会发送这些事件,从而保证了系统的可控性和稳定性。

应用场景

这些事件对实现高级功能,如Zoned Namespace耐久性管理固件升级通知等有重要作用,能够在异步模式下及时通知主机系统,减少主机的轮询负担,并提高系统的实时性和效率。