数据结构与日志格式 - 第240页
深入分析 NVM Express® Base Specification, revision 2.0b - 命令和功能锁定日志页面 (Log Identifier 14h)
本节分析的是 命令和功能锁定 (Log Identifier 14h),该日志页面涉及对某些命令和 Set Features 功能标识符的禁止执行控制。通过该日志页面,控制器能够明确哪些命令在特定条件下被禁止,确保在操作过程中避免发生不期望的状态变更。以下是对 Command Dword 10 – Log Specific Field 的详细解读。
Command Dword 10 – Log Specific Field
字段分析:
- Contents (CNTTS)
该字段与 Scope 字段一起,指定了 Command and Feature Identifier List 的内容。具体内容包括: - 00b:列出根据 Scope 字段指定的、被禁止执行的命令操作码或功能标识符 (Feature Identifiers)。
- 01b:列出当前被禁止的命令操作码或功能标识符,这些命令若在 NVM Express controller Admin submission queue 中接收到,将被禁止执行。
- 10b:列出当前被禁止的命令操作码或功能标识符,这些命令若通过 out-of-band 方式(如管理端点)接收到,将被禁止执行。
-
11b:保留,未使用。
-
Scope (SCP)
该字段与 Contents 字段一起,进一步限定了 Command and Feature Identifier List 的内容。它定义了命令或功能标识符的具体作用范围: - 0h:列出 Admin Command Set 中的命令操作码。
- 1h:保留,未使用。
- 2h:列出 Feature Identifiers。
- 3h:列出 Management Interface Command Set 的命令操作码(具体见 NVMe Management Interface Specification)。
- 4h:列出 PCIe Command Set 的命令操作码(具体见 NVMe Management Interface Specification)。
-
5h - Fh:保留,未使用。
-
UUID Index
- 功能:当 Scope 字段设置为 2h 时,可以指定一个 UUID Index,返回由供应商定义的 Set Features 功能标识符锁定信息。如果 Scope 字段不为 2h,则 UUID Index 字段将被忽略。
- 影响:提供了对特定供应商 Set Features 锁定信息的查询方式,能够帮助在更细粒度上管理 Set Features 功能的执行。
关键点总结:
-
命令范围和锁定:该日志页面能够指示哪些命令被禁止执行,并通过 Scope 和 Contents 字段明确规定其作用范围(例如,Admin Command Set、Feature Identifiers 等)。通过这些信息,可以在不同的上下文中有效管理命令的执行。
-
UUID Index 的作用:通过 UUID Index,可以根据供应商指定的特定锁定信息提供更细化的控制,特别是在涉及到 Set Features 功能标识符时。
-
命令禁止控制:该页面有助于系统在发生异常情况或特殊需求时,禁用某些不需要或不允许执行的命令。这对维护系统的稳定性和避免错误非常重要,尤其是在有多个管理端点和命令执行策略的复杂环境中。
-
无管理端点的处理:如果 Contents 字段设置为 10b(即通过管理端点接收命令),但 NVM subsystem 不支持管理端点,则该命令会被中止,返回状态码 Invalid Field in Command。
应用场景:
-
控制命令的执行:在某些情况下,控制器可能需要禁止某些特定命令的执行,例如在固件更新时,某些敏感操作命令需要被禁止,以防止系统状态的不一致或不安全。
-
供应商定制功能管理:通过 UUID Index,可以返回供应商特定的功能标识符锁定信息,为供应商提供灵活的功能控制和管理。
-
多主机环境中的命令协调:如果有多个主机连接到同一个 NVM subsystem,需要协调各主机的命令执行,确保命令不会冲突,避免影响系统稳定性。
结论
该日志页面及其字段设计提供了精确控制命令执行的机制,尤其是在复杂的多主机、多管理端点的环境中,能够有效管理 NVM subsystem 中的命令执行,确保系统的稳定性和安全性。