目录结构、章节导航与规范组织 (第2页)
NVME2.0协议解读 1 min read

目录结构、章节导航与规范组织 (第2页)

Blog Author

以下是对 NVM Express® Base Specification Revision 2.0b 的目录结构的中文解读(第 iii 页 Table of Contents),并辅以深入理解说明,便于系统性学习和掌握 NVMe 协议核心内容。


第1章:引言(INTRODUCTION)

  • 1.1 总览
    介绍 NVMe 协议的整体架构、目标和设计理念,如高性能、低延迟。

  • 1.2 范围
    明确该规范涵盖的内容,例如命令集、控制器行为、存储模型等。

  • 1.3 不在本规范范围内的内容
    排除项,例如具体设备实现方式、操作系统驱动层行为。

  • 1.4 约定
    定义文档中使用的术语书写格式、数值表示法、位序等(如大小端格式、保留位处理等)。

  • 1.5 定义
    所有技术术语的标准定义,比如“Namespace”、“Controller”等,确保阅读时的一致性理解。

  • 1.6 I/O 命令集特定定义
    专门针对 I/O 命令集的一些术语定义,例如读写命令使用的特定字段说明。

  • 1.7 NVM 命令集特定定义
    补充说明面向非易失性内存的命令集术语。

  • 1.8 参考文献
    本规范引用的所有相关技术标准(如 PCIe 规范、IEEE 等)。

  • 1.9 正在制定中的参考标准
    尚未正式发布但对未来 NVMe 演进重要的标准草案。


第2章:操作理论(THEORY OF OPERATION)

  • 2.1 基于内存的传输模型
    NVMe 如何通过内存映射(MMIO)与主机交互(比如 doorbell 寄存器、共享内存 buffer)。

  • 2.2 基于消息的传输模型
    针对如 NVMe-oF、NVMe-MI 等情况下通过消息通道进行命令通信的机制。

  • 2.3 NVM 存储模型
    描述命名空间(Namespace)、LBA、元数据、扇区对齐等核心概念。

  • 2.4 扩展能力理论
    NVMe 的能力通过 Feature、Log Page、Vendor Specific 等方式进行扩展和增强。


第3章:NVMe 架构(NVM EXPRESS ARCHITECTURE)

  • 3.1 控制器架构
    重点内容!涉及 Admin Queue、I/O Queue、寄存器空间、功能模块等详细说明。

  • 3.2 子系统实体
    如 NVM Subsystem、Controller、Namespace 之间的关系,单端口、多端口架构等。

  • 3.3 队列模型
    提交/完成队列的深度、关联、Doorbell 和 Event机制等,核心性能机制。

  • 3.4 命令提交与完成机制
    命令生命周期:主机构造命令 → 提交队列 → 控制器处理 → 完成队列 → 主机回收。

  • 3.5 控制器初始化
    上电流程、控制器识别、自检机制、Queue 创建流程等。

  • 3.6 关机处理流程
    正常关机下的命令流程、数据刷新机制。

  • 3.7 重置处理机制
    控制器软/硬件重置的作用范围、行为和寄存器状态恢复机制。

  • 3.8 容量模型
    Namespace 容量如何管理,Thin Provisioning、保留空间等策略。

  • 3.9 Keep Alive 机制
    控制器闲置时如何维持连接存活,主机定期发送 Keep Alive 命令。

  • 3.10 特权操作
    仅超级用户可执行的命令或操作,如低级别调试、关键配置变更。

  • 3.11 固件更新流程
    包括 Download、Commit 两个阶段,涉及安全性校验与控制器重启。


第4章:数据结构(DATA STRUCTURES)

  • 4.1 数据布局
    所有命令、响应结构体格式,包括字段长度、偏移、保留位等。

  • 4.2 Feature 值定义
    各类 Feature ID 所代表的功能,及其启用/禁用、参数设置方式。

  • 4.3 标识符格式(信息性)
    用于设备唯一识别的标识符(如 UUID、NGUID、EUI64 等)及其组合方式。

  • 4.4 列表类结构
    常见的结构,如识别命令返回的多条记录、日志页记录等列表结构的构造方式。

  • 4.5 NVMe 合格名称
    类似 iSCSI 的 Qualified Name,用于网络发现或唯一识别(例如 NVMe-oF 环境下)。


第5章:管理命令集(ADMIN COMMAND SET)

  • 包括所有非 I/O 类控制命令,例如:
  • 5.1 Abort:中止已提交未完成的命令。
  • 5.2 AER:注册异步事件通知(如温度警告、电源异常)。
  • 5.3 容量管理:调整命名空间大小、空间分配等。
  • 5.4 ~ 5.7 队列操作命令:创建/删除 Submission 和 Completion Queue。
  • 5.8 Doorbell Buffer 配置:优化 Doorbell 寄存器写入机制。
  • 5.9 自检命令:控制器健康状况检测。
  • 5.10~5.11 指令接收/发送(Directive):增强命令机制。
  • 5.12~5.13 固件下载/提交命令
  • 5.14 Format NVM:安全擦除和初始化命名空间。

如果你需要我逐章翻译或分析某一小节的内容,比如深入分析 3.1 Controller Architecture5.14 Format NVM 命令结构,可以直接告诉我,我可以配合示意图或字段逐个解释。是否想继续深入哪一章内容?