NVMe架构与操作理论 - 第23页
NVME2.0协议解读 1 min read

NVMe架构与操作理论 - 第23页

Blog Author

你现在阅读的是 《NVM Express® Base Specification, revision 2.0b》术语定义(第 1.6 ~ 1.7 节)与引用文献(1.8) 的最后部分。这部分涉及 I/O Command Set 特定定义、逻辑块(LBA)等基本概念,以及本规范所依赖的重要国际标准

以下我将继续以教学方式深入解析这些术语与引用文献的实际作用、用途场景与在 NVMe 中的体现,帮助你系统性掌握协议上下文。


✅ 一、I/O Command Set 特定术语解释(1.6)

这一小节术语并不是 NVMe Base 通用定义,而是针对特定 I/O Command Set(如 NVM、ZNS、KV)中的扩展命令。你可以理解为:某些命令并非通用,而是依赖于特定命令集的上下文才有意义。


🔹 Endurance Group Host Read Command

控制器读取用户数据,但不一定返回给主机

📘 应用: - 为统计或校验目的读取(如后台数据校验、刷写前读取) - 不返回主机,但可能用于耐久性计算或热度跟踪


🔹 SMART Data Units Read / Host Read Command

同样的结构:读取用户数据,用于 SMART 监控数据分析,不一定把数据还给主机。

📘 用于统计: - 累计读出 block 数量 - 推断设备负载、寿命周期


🔹 User Data Format

定义了用户数据在 NVM 介质上的物理格式。

📘 参考字段:LBAF, FLBAS, MS, MC(Identify Namespace 响应中的格式定义)

📘 用途: - 确定 LBA 大小(512B/4KiB) - 确定是否含 metadata,metadata 长度


🔹 Format Index

索引指向某种 User Data Format 的编号。

📘 对应 Format NVM 命令中设置的新格式: - Format Index = 0 → 第一个 LBAF 条目 - 决定 namespace 使用哪种数据组织结构


🔹 User Data Out Command

控制器写入用户数据,但主机是否真的传输数据过来不确定

📘 典型用途: - 写零填充命令(无需传输实际数据) - 触发控制器写入固定模板、初始化块等操作


✅ 二、NVM Command Set 通用术语定义(1.7)

🔹 logical block(逻辑块)

NVMe 协议中最小可寻址的数据单位(通常为 512B 或 4KiB),由主机按块发起读写。

📘 LBA 0 ~ LBA N 表示一系列连续的逻辑块。


🔹 logical block address(LBA)

每个逻辑块的编号/地址,类似磁盘中的“扇区号”。

📘 举例:

Read Command:
CDW10 = 起始 LBA
CDW11 = 高 32 位 LBA(若使用 64-bit LBA addressing)

📘 LBA 与 Physical NAND Block 并不一一对应,中间存在 FTL(Flash Translation Layer)映射机制。


✅ 三、引用标准文献列表(1.8)

NVMe 规范并非孤立存在,依赖于一系列 SCSI、ATA、ISO、JEDEC 等标准作为参考和比对:

标准编号 标准名称 作用
INCITS 502-2019 SPC-5: SCSI Primary Commands 参考 SCSI 命令行为与结构
INCITS 514-2014 SBC-3: SCSI Block Commands 块设备行为模型参考
INCITS 529-2018 ACS-4: ATA/ATAPI Command Set 与 SATA 设备行为对照
INCITS 556-2020 FC-NVMe-2: Fibre Channel 绑定 NVMe-over-FC 实现参考
ISO 8601 日期时间格式标准 日志与事件时间戳格式(如 SMART)
ISO/IEC 27040 存储安全标准 Sanitize 安全删除操作依据
JEDEC JESD218B-01 SSD 耐久性标准 Write/Read Endurance、TBW 基准依据

✅ 知识应用总结表

概念 中文释义 应用场景
Endurance Group Host Read Command 仅供内部校验的读命令 后台校验、健康管理
User Data Format 用户数据组织格式 Format NVM、Identify Namespace
Format Index 指定使用哪种格式 LBAF 表选择
User Data Out 控制器写入行为命令 写零命令、模板数据
Logical Block 最小可寻址单元 数据对齐、容量定义
LBA 逻辑块地址 命令寻址字段
SPC-5 / SBC-3 SCSI 标准参考 命令语义比对
ACS-4 ATA 标准参考 兼容性说明
ISO/IEC 27040 安全擦除标准 Sanitize 合规性依据
JESD218B SSD 耐久性标准 TBW/寿命认证规范

🔍 下一步推荐方向:

你现在已经掌握了命令集相关术语(如 Format、LBA、User Data 类型)和标准参考文献的意义。下一步建议:

  1. 深入阅读第 5.17 – Identify 命令,配合 LBAF、FLBAS、MC、MS 字段理解 User Data Format;
  2. 阅读第 5.24 – Sanitize 命令,结合 ISO/IEC 27040 标准理解三种擦除机制;
  3. 阅读第 8.19 – Reservations、8.20 – Rotational Media、8.21 – Sanitize Operations 进行场景强化。

如果你希望我制作出:

  • Format NVM 命令结构 + 示例流程图
  • Identify Namespace 中 LBAF 表的图解
  • Sanitize 三种模式的对比与状态流转图

我可以随时帮你构建。你想先看哪个部分?我们可以马上进入实战讲解!