数据结构与日志格式 - 第237页
深入分析 NVM Express® Base Specification, revision 2.0b 中 Feature Identifiers 和 FID 支持与影响的描述
在本节中,我们将详细探讨与 Feature Identifiers(FID)相关的支持和影响,特别是 Get Log Page 相关日志,FIDs 的作用,以及如何根据命令集规范来控制和协调这些功能。
Feature Identifiers Effects Log (Log Identifier 12h)
功能:该日志页面用于描述控制器支持的每个功能标识符(FID)的影响,特别是 Set Features 命令的效果。通过此日志,系统可以了解特定功能如何影响 NVM 子系统,以及不同接口支持的功能标识符(FIDs)。
结构分析
- Feature Identifier Supported 0 - 255
- 该字段描述了各个 FID(从 0 到 FFh)在 NVM subsystem 中的支持情况。
- 每个 FID 都有相应的 FID Supported and Effects 数据结构,定义了该 FID 可能的影响和支持的特性。
-
如果 CC.CSS 设置为
110b,表示 I/O Command Sets 未通过 I/O Command Set Profile (FID 19h) 启用的命令集将被视为不支持。 -
FID Supported and Effects Data Structure (图 256)
FID Supported and Effects 数据结构 为每个 FID 提供了详细的信息,说明它对 NVM subsystem 的影响。以下是该数据结构中字段的解析:
FID Supported and Effects Data Structure 解析
- FID Scope (FSP)
-
功能:该字段定义了关联功能标识符的作用范围。如果字段为
0h,则没有报告作用范围。非零值则表示此功能标识符的作用范围,最多只有一个 bit 为1。 -
作用范围的具体描述
- NVM Subsystem Scope:如果设置为
1,则修改该 FID 可能会影响整个 NVM subsystem。 - Domain Scope:如果设置为
1,则修改该 FID 可能会影响单一 Domain。 - Endurance Group Scope:如果设置为
1,则修改该 FID 可能会影响 Endurance Groups。 - NVM Set Scope:如果设置为
1,则修改该 FID 可能会影响 NVM Sets。 - Controller Scope:如果设置为
1,则修改该 FID 可能会影响 Controller。 -
Namespace Scope:如果设置为
1,则修改该 FID 可能会影响 Namespaces。 -
UUID Selection Supported
-
功能:此字段指示是否支持通过 Get Features 或 Set Features 命令选择 UUID。如果为
1,表示支持选择 UUID。 -
Controller Capability Change (CCC)
- 功能:如果设置为
1,则表示修改该 FID 的值可能会导致 controller 能力发生变化。例如,固件更新可能会改变 CAP 属性所报告的能力。如果为0,则说明该 FID 不会影响 controller 的能力。
协调多个主机的命令
- 多个主机:如果有多个主机连接到 NVM subsystem,它们需要协调命令的提交和执行,以满足命令序列和执行的要求。这一协调过程的详细内容超出了当前规范的范围,但它强调了多主机环境下命令的同步性和一致性。
总结
-
Feature Identifiers (FID) 是 NVM subsystem 中用于配置和控制的核心功能标识符。通过 Set Features 和 Get Features 命令,系统可以对这些 FID 进行修改,并根据其影响来管理系统的不同部分(如 Controller、Namespaces、Endurance Groups 等)。
-
FID Supported and Effects 数据结构 详尽描述了每个 FID 对整个系统的影响范围,帮助理解 NVM subsystem 在功能配置和管理时如何运作。
-
在多主机环境下,协调 Set Features 和 Get Features 命令对于确保系统的稳定性和一致性至关重要。