01
NVMe协议概述
NVMe的诞生背景、与传统AHCI的对比、NVMe协议栈架构概览。
基础架构
02
PCIe基础回顾
PCIe拓扑结构、事务层(TLP)、数据链路层(DLLP)、物理层。
总线协议
03
NVMe寄存器详解
BAR空间、Doorbell寄存器、Capabilities寄存器、Version寄存器。
寄存器配置
04
Admin Submission Queue与Completion Queue
Admin SQ/CQ的创建与管理、Admin命令提交流程。
队列Admin
05
IO Submission Queue与Completion Queue
IO SQ/CQ的创建、中断机制(MSI-X)、仲裁机制。
IO中断
06
NVMe命令格式
命令Dword0-Dword15详解、命令类型(Admin vs IO)、命令状态码。
命令格式
07
Admin命令集(上)
Identify命令、Get Log Page命令、Set Features命令。
Admin识别
08
Admin命令集(下)
Create IO SQ/CQ命令、Delete IO SQ/CQ命令、Abort命令。
队列管理Admin
09
IO命令集
Read/Write命令、Flush命令、Dataset Management命令。
读写数据管理
10
PRP与SGL机制
PRP(物理区域页)原理、SGL(散列聚集列表)原理、两者对比与选择。
数据传输DMA
11
NVMe队列深度与并发
队列深度对性能的影响、多队列并发模型、实际项目中的队列配置。
性能并发
12
NVMe中断处理
Pin-based Interrupt、MSI、MSI-X、中断合并(Interrupt Coalescing)。
中断MSI-X
13
NVMe电源管理
电源状态(PS)、自主电源状态转换(APST)、非操作电源状态(NOPSS)。
功耗省电
14
NVMe错误处理
错误日志、错误恢复流程、端到端数据保护(DIF/DIX)。
可靠性容错
15
NVMe安全与认证
TCG Opal标准、NVMe安全协议、加密引擎集成。
安全加密
16
SSD控制器架构概览
控制器内部模块划分(CPU、DMA、ECC、Flash接口)。
硬件架构
17
FTL(闪存转换层)核心算法
逻辑到物理映射、垃圾回收(GC)、磨损均衡(WL)。
FTL算法
18
NAND Flash接口协议
ONFI/Toggle协议、NAND命令集、时序参数。
NAND接口
19
ECC纠错码原理
BCH码、LDPC码、RAID保护机制。
纠错可靠性
20
SSD缓存管理
DRAM缓存、SRAM缓存、写缓冲策略、读缓存策略。
缓存性能
21
NVMe驱动开发基础
Linux NVMe驱动框架、Windows NVMe驱动框架。
驱动开发
22
NVMe控制器初始化流程
硬件复位、寄存器配置、队列创建、Feature设置。
初始化配置
23
NVMe IO路径优化
命令提交优化、完成轮询优化、零拷贝技术。
优化性能
24
NVMe热插拔与多路径
热插拔处理流程、多路径I/O(MPIO)、Namespace管理。
热插拔多路径
25
NVMe over Fabrics(NVMe-oF)
RDMA(InfiniBand/RoCE)、TCP传输、FC传输。
网络NVMe-oF
26
NVMe虚拟化
SR-IOV、虚拟化队列、多租户支持。
虚拟化SR-IOV
27
NVMe性能测试与调优
FIO工具使用、延迟分析、吞吐量优化。
测试调优
28
NVMe协议演进
NVMe 1.3、1.4、2.0新特性(ZNS、KV命令、持久化内存)。
演进新特性
29
SSD控制器固件开发实战
任务调度、内存管理、调试技巧。
固件实战
30
NVMe与SSD未来趋势
CXL协议融合、计算型存储、QLC/PLC NAND挑战。
趋势前沿