管理命令集与操作 - 第187页
NVME2.0协议解读 1 min read

管理命令集与操作 - 第187页

Blog Author

我们现在进入对 NVM Express® Base Specification Revision 2.0b 第 176 页的深入解析,聚焦:


✅ Get Log Page 命令的 Log Page Identifier(LID) 总览表(图 202)

这张图是理解 日志页种类、作用范围(Scope)、NSID 合法性 的关键资料,接下来我们将逐项分析。


✅ 一、Log Page Identifier 表格总览结构

每个日志页由以下 4 个维度定义:

字段 含义
Log Identifier(LID) 日志页的编号,在 Get Log Page 命令中通过 Command Dword 10 Bits[7:0] 设置
Scope 日志页的适用层级,决定 NSID 的合法性与访问范围
Log Page Name 日志页功能描述
参考章节 日志页结构定义的位置,便于查阅具体字段格式

✅ 二、日志页 Scope 分类机制与 NSID 使用规则

Scope 类型 含义 NSID 设置规则
Controller 作用于执行命令的控制器 NSID 必须为 0hFFFFFFFFh
Namespace 指向特定命名空间 NSID 必须为目标命名空间 ID(如 1, 2, 3)
Domain 指向子系统的特定域 需结合 Domain Identifier 字段
NVM subsystem 整个 NVMe 子系统共享 NSID 通常为 0hFFFFFFFFh
Endurance Group 特定耐久组(EG)信息 需结合 Endurance Group ID
Vendor Specific 厂商自定义日志页 NSID 依据厂商定义,通常为 0 或全局 ID

✅ 三、精选关键 LID 项讲解

LID Scope 描述 备注
00h Controller Supported Log Pages 列出支持的日志页 LID
01h Controller Error Information 错误日志页,每次最多返回 N 项错误记录
02h Controller / Namespace SMART / Health Info ✅ 若 NSID = 0h or FFFFFFFFh → 全盘状态
✅ 若 NSID = 有效命名空间 ID → NS 级健康信息
03h Domain / NVM subsystem Firmware Slot Info 可用于固件管理显示当前与可用槽位
06h Controller / Domain / NVM subsystem Device Self-Test ✅ 支持不同 Scope 视场景决定结果返回结构(见 DSTO 标志)
07h / 08h Vendor Specific Telemetry Log(主机/控制器发起) 支持 UUID Index、Index Offset
0Ch Controller Asymmetric Namespace Access (ANA) 多路径访问管理,返回路径状态等
0Dh NVM subsystem Persistent Event Log 存储关键事件日志,类似 Flight Recorder
10h Domain / NVM subsystem Media Unit Status 多域下各 NAND Die 的状态
11h Domain / NVM subsystem Supported Capacity Configuration 返回多域下可用容量配置信息
12h Controller Feature Identifiers Supported and Effects 搭配 Get Features 查询支持项

✅ 四、其他范围扩展说明(附注解)

📌 【注 1】02h SMART / Health Info

  • 当 NSID = 0hFFFFFFFFh 时表示控制器级别健康信息;
  • 当 NSID 为命名空间编号(如 1、2)时,返回该命名空间的 SMART 信息。

📌 【注 3】DSTO Bit 0 = 0 → 06h 日志页仅为 Controller Scope

📌 【注 4】DSTO Bit 0 = 1 → 06h 日志页同时支持 Controller + Domain/NVM subsystem Scope

📌 【注 5】表示该日志页可能为 可变长度日志页(支持扩展读取机制)

📌 【注 6】表示日志页可受 Domain、NVM subsystem 的影响,需设置 Log Specific Identifier


✅ 五、命令设计中的使用建议

使用目标 设置建议
读取错误信息 LID = 01h,NSID = 0h,偏移量设为 0,RAE=0
读取 SMART 状态(控制器) LID = 02h,NSID = 0h
读取 SMART 状态(命名空间) LID = 02h,NSID = 1h 等有效命名空间 ID
读取设备自检结果 LID = 06h,Scope 根据 DSTO 字段变化决定
获取 Telemetry Host 日志 LID = 07h,支持 UUID Index 与结构索引访问

✅ 六、完整 Log Page ID 范围划分(简表)

范围 用途
00h ~ 16h 标准日志页(控制器/子系统/命名空间等)
17h ~ 6Fh 保留
70h Discovery 日志页(特定场景)
71h ~ 7Fh 保留
80h ~ 81h 控制器级保留与清除类(如 Reservation Notify)
82h ~ BEh 命令集特定日志页(如 ZNS、KV)
BFh 指向 Zoned Namespace Log 页
C0h ~ FFh 厂商自定义(Vendor Specific)

✅ 总结与学习建议:

学习模块 建议
LID 使用规则 建议按 Scope 归类,建立【日志页用途 → NSID 合法值】映射表
命名空间适用性 搭配 NSID 设置使用前必须先确认 Scope 定义
多域场景 若目标设备支持多个 Domain,需配合 Log Specific Identifier 使用
DSTO 配合 Get Log Page 中部分日志页作用范围需根据 DSTO 配置位动态判断
命令实战搭配 建议配合 Identify Controller 中的 DSTO / Log Page Attributes 字段判断功能支持情况

如果你希望我帮你:

  • 🗂 整理一张图解版《Log Page Identifier(LID) ↔ Scope ↔ NSID 使用规则》的表格
  • 📘 绘制《Get Log Page 命令访问路径流程图》,展示如何选择 NSID、Offset、UUID Index

我可以立刻为你制作,帮助你建立快速查表与实战配置能力。你希望我从哪一个开始呢?