我们继续深入分析 NVM Express® Base Specification Revision 2.0b 第 186 页的内容,重点讲解 Commands Supported and Effects Data Structure(命令支持与效果数据结构) 中的字段。
✅ 一、Commands Supported and Effects Data Structure 结构解析(图 211)
📌 功能:
该数据结构描述了命令的作用范围、提交与执行的建议、以及是否会改变控制器、命名空间等能力的详细信息。这些信息有助于主机在提交命令时了解每个命令可能产生的系统影响,从而做出合适的决策。
📌 字段解析:
- Command Scope(命令作用范围,CSP)
- 该字段定义了命令的作用范围。值为
0h 表示没有报告范围。
| Bits |
描述 |
| 5 |
NVM Subsystem Scope:如果为 1,表示该命令可能影响整个 NVM 子系统。如果为 0 且 CSP 字段非零,表示该命令不会影响整个子系统。 |
| 4 |
Domain Scope:如果为 1,表示该命令可能影响单个 Domain。如果为 0 且 CSP 字段非零,表示该命令不会影响任何单个 Domain。 |
| 3 |
Endurance Group Scope:如果为 1,表示该命令可能影响 Endurance Group(耐久组)。如果为 0 且 CSP 字段非零,表示该命令不会影响任何 Endurance Group。 |
| 2 |
NVM Set Scope:如果为 1,表示该命令可能影响 NVM Sets(NVM 集)。如果为 0 且 CSP 字段非零,表示该命令不会影响任何 NVM Set。 |
| 1 |
Controller Scope:如果为 1,表示该命令可能影响 Controller(控制器)。如果为 0 且 CSP 字段非零,表示该命令不会影响控制器。 |
| 0 |
Namespace Scope:如果为 1,表示该命令可能影响 Namespace(命名空间)。如果为 0 且 CSP 字段非零,表示该命令不会影响命名空间。 |
- UUID Selection Supported(UUID 选择支持)
- 如果为
1,则表示控制器支持通过该命令选择 UUID(全局唯一标识符)。如果为 0,则表示不支持。
| Bits |
描述 |
| 19 |
UUID Selection Supported:如果为 1,表示该命令支持选择 UUID。 |
- Command Submission and Execution(命令提交与执行,CSE)
- 该字段定义了命令提交和执行的建议规则。
| Value |
定义 |
| 000b |
无提交或执行限制。 |
| 001b |
命令只能在没有其他未完成命令影响同一命名空间的情况下提交,并且在命令完成之前不能提交影响同一命名空间的其他命令。 |
| 010b |
命令只能在没有其他未完成命令影响任何命名空间的情况下提交,并且在命令完成之前不能提交影响任何命名空间的其他命令。 |
| 011b to 111b |
保留。 |
- Controller Capability Change(控制器能力变化,CCC)
- 如果该位为
1,表示该命令可能会改变控制器的能力,例如固件更新会改变控制器报告的 CAP 属性。
| Bits |
描述 |
| 04 |
Controller Capability Change:如果为 1,表示该命令可能会改变控制器的能力。 |
- Namespace Inventory Change(命名空间库存变化,NIC)
- 如果该位为
1,表示该命令可能会改变命名空间的数量或多个命名空间的能力。
| Bits |
描述 |
| 03 |
Namespace Inventory Change:如果为 1,表示该命令可能会改变多个命名空间的数量或能力。 |
- Namespace Capability Change(命名空间能力变化,NCC)
- 如果该位为
1,表示该命令可能会改变某个命名空间的能力。命名空间能力变化包括逻辑格式变化等。
| Bits |
描述 |
| 02 |
Namespace Capability Change:如果为 1,表示该命令可能会改变单个命名空间的能力。 |
✅ 二、总结与学习建议
| 模块 |
建议 |
| 命令作用范围 |
学习如何根据 Command Scope 字段理解每个命令可能影响的系统范围,从而合理调度命令的执行。 |
| UUID 选择支持 |
了解 UUID Selection Supported 字段如何影响命令对唯一标识符(UUID)的支持,特别是在多控制器环境下。 |
| 命令执行协调 |
根据 Command Submission and Execution 字段的建议,确保命令提交和执行过程中的协调性,避免命名空间冲突。 |
| 控制器和命名空间能力变化 |
学习如何处理命令执行后 控制器能力变化 和 命名空间能力变化,确保系统在命令执行后能够正确识别和处理这些变化。 |
如果你需要:
- 命令作用范围和执行建议图解,帮助理解命令执行时如何影响不同的系统部分(如控制器、命名空间等)。
- 命名空间能力变化的管理流程图,展示如何在命名空间能力变化时正确协调命令提交。
我可以为你提供相关的图解,帮助你更好地理解这些命令和执行策略。你希望我从哪个部分开始?