🔌阶段一:硬件加电 + 物理层启动(0–100ms)
1.1 电源路径建立
1.3 PCIe PHY 链路训练
🧬阶段二:枚举与 NVMe 初始化(100–500ms)
2.1 BIOS / UEFI 枚举 PCIe 设备
2.2 NVMe Admin Queue 建立
2.3 Namespace 构建与启用
💽阶段三:OS 加载 + 文件系统挂载(500ms –2s)
3.1 操作系统加载 NVMe 驱动
3.2 OS 构建 IO 队列
3.3 扫描分区 + 文件系统识别
🧮阶段四:工作状态下的数据路径(Read/Write)
4.1 写入流程(例:NVMe Write Command)
CPU → nvme_submit_io(): 填写 write 命令 + 数据地址 → SQ Entry → 控制器读 SQ Entry → DMA Host 数据到 DRAM → 写入 NAND(可能走 SLC 缓冲)→ CQ Entry 写入完成状态 → Host Poll CQ 或中断响应
4.2 读取流程(例:NVMe Read Command)
CPU → nvme_submit_io(): 填写 read 命令 + LBA → 控制器查 L2P → 发起 NAND Read → ECC 解码 → DMA 回 Host → CQ 更新
⚙️补充模块(在 SSD 固件中完成)
功能模块 |
作用 |
FTL |
Flash Translation Layer:LBA ↔ PBA 映射,维护元数据、垃圾回收(GC) |
Wear Leveling |
均衡擦写次数,延长寿命 |
Bad Block Management |
跳过出错的 NAND 块(硬件 ECC + 表) |
Thermal Throttling |
控制写入速率,防止温度过高 |
SLC Cache / pSLC |
提高写入速度,动态转为 MLC/TLC |
⌛时间线概览(近似)
时间 |
动作 |
0–20ms |
电源建立 → 控制器 PMIC + Reset |
20–100ms |
Boot ROM 初始化 NAND/DRAM,PCIe PHY 链路训练 |
100–300ms |
BIOS UEFI PCIe 枚举,Option ROM 加载 |
300–500ms |
NVMe Admin Queue 建立,Namespace Ready |
500ms – 2s |
OS 挂载驱动,构建 IO 队列,挂载文件系统 |
2s+ |
可接受读写命令,进入稳定运行状态 |
✅总结
一颗 PCIe/NVMe SSD 从通电到可工作,经历了:
电源初始化 → 控制器BootROM → PCIe 链路训练 → NVMe 枚举 →队列建立 → FTL 映射 → OS 驱动挂载 → 用户可读写
这个流程结合了硬件(PHY、PLL、Flash 电源)、协议(PCIe TLP/ACK, NVMe SQ/CQ)、控制器固件(FTL、Bad Block Table、Queue Manager)以及操作系统(UEFI、驱动、文件系统)多层次协同设计,使得用户最终看到的是“1秒内可读写”的高性能存储设备。
对于上述内容感兴趣的朋友,可以下载并且参考我们4/12最新更新的白皮书12.1版本的Chapter 10章节 - 《PCIe5&6.0, CXL, NVMeNVMoF, SSD, NAND, DDR5, 800GE测试技术和工具白皮书_ver12.1》。
下载链接:
https://pan.baidu.com/s/1Ms4ys0dbt66-2HVhFuHbCQ?pwd=yvwg 提取码: yvwg
如果你有其他任何关于PCIe5&6.0, CXL, NVMe/NVMoF, NAND, DDR5/LPDDR5以及UFS测试方面的问题想咨询,请访问:访问www.saniffer.cn / www.saniffer.com 访问我们的相关测试工具和产品;或者添加saniffer公众号留言,致电021-50807071 / 13127856862,sales@saniffer.com。