我们知道,在NVMe SSD研发阶段,不论是你开发PCIe/NVMe SSD controller,还是开发firmware,还是针对整盘SSD做测试,总之,一个公司在正式发布NVMe SSD controller后者NVMe SSD整盘到市场上之前,一定要对于SSD的各个方面做各种各样的详尽的测试,保证这些关键的性能、功能全部通过才可以放心发布到市场进行销售。在这个市场上,我们耳熟能详的就是全球业内排名第一的SanBlaze针对NVMe SSD研发/测试/验证的turn-key solution提供了硬件级别的硬件解决方案,很多底层PCIe层故障注入、带外smbus、带内VDM,SRIS,热插拔、掉电、功耗、电压拉偏、低功耗L1.0/L1.1/L1.2等等全部通过硬件完成,同时也提供了2000+测试用例,涵盖了从NVMe 版本1.0~2.3,NVMe-MI,namespace管理,各类高级企业级功能,例如,SPDM, FDP, OCP 2.6, SR-IOV, TCG, ZNS, SRIS,TCG, dual-port 双端口, DSSD, CMB/HMB, T10 DIF_DIX, 各类NVMe Power and Reset测试,以及测试过程中碰到异常可以通过特定pattern触发SerialTek PCIe 协议分析仪,给用户进行研发、测试、验证带了丰富的测试功能和高效的问题诊断。感兴趣的朋友可以到本文底部下载PCIe/NVMe SSD测试白皮书,参考章节3,通过SanBlaze验证测试的测试报告一般都要2000页以上,内容及其丰富,感兴趣的也可以联系我们,所以Sanblaze设备成为了业内几乎你可以看得见每家SSD从业公司的标配,从SSD controller,到SSD整盘,最后到使用SSD做新产品导入测试的各个OEM/ODM厂家,例如IBM, HP, Dell, EMC等等。SanBlaze是UNH IOL实验室唯一授权可以在其系统内部100%激活最新UNH IOL lab 测试的厂家。SanBlaze也是UNH IOL实验室唯一指定的OCP兼容性测试提供商。采用专门设计的硬件,包括FPGA实现的turn-key solution确实好,但是价格也较贵,业内还有一家公司也获得国际和国内大客户的一致推荐,这个就是我们今天介绍的主角HPSI公司的NVMe SSD软件测试方案,该方案可以安装在你的Linux系统里面,除了没有需要FPGA或者硬件需要硬件支持的功能外(部分功能可以通过单独购买Quarch实现热插拔、故障注入,电压拉偏、功耗测试等),针对NVMe的测试相当强,大家可以参考下面的文字总结以及视频讲解,感兴趣的朋友可以联系我们saniffer获得trial license试用。EDVT、NVMETEST、NVMEQRWT 三个软件功能与用途对比
一、Engineering Design Verification Tests(EDVT)
定位:NVMe 规范验证脚本库(Test Suite)依赖:需要 NVMETEST v8 或以上版本
EDVT 本身并不是一个独立的软件,而是 NVMETEST 内置的脚本测试套件,用于对 NVMe 设备进行 工程设计验证(Engineering Design Verification Test)。 其核心作用是验证 NVMe 设备是否符合 NVMe 规范定义的行为,包括:
✅ EDVT 特点与结构
| 类别 | 描述 |
|---|
| 组成方式 | 一系列 *.tsf 测试脚本,通过 *.sl 脚本列表统一调度执行 |
| 测试范围 | 基本功能 + 异常用例(normal + invalid) |
| 执行方式 | ./nvmetest b:d:f slist=edvt/edvt0.sl(CLI 或 NVMETEST 命令模式) |
| 日志输出 | Summary & Detail log 自动生成,便于 debug |
✅ 内含测试示例(部分)
| 测试编号 | 内容 |
|---|
test000 | 多种 reset 操作验证 |
test002 | Basic W/R 前 10,000 sector write + read compare |
test004 | PRP / SGL 功能验证 |
test080 – test088 | 各种 invalid 命令 / 参数行为验证 |
一句话总结:EDVT = 标准化 NVMe 定义行为验证脚本集合,帮助确认设备协议实现是否正确。
二、NVMETEST
定位:全功能 NVMe 协议验证平台(NVMe command test framework)
这是一个完整的 NVMe 测试程序,支持:
✅ 核心能力
| 类别 | 功能描述 |
|---|
| 命令能力 | 支持所有 Admin & I/O commands,也能构造 invalid command |
| 队列支持 | 支持多 I/O 队列 + shared Completion Queue |
| 数据能力 | 支持 data generation、data compare、SGL / CMB、metadata |
| 脚本引擎 | 支持变量、数组、IF/WHILE、CALL/RETURN、脚本列表执行 |
| 调试能力 | 显示 controller info、寄存器、queues、buffers、trace |
一句话总结:NVMETEST = NVMe 协议调试与验证的强大工作台,EDVT 套件运行环境。
三、NVMEQRWT
定位:NVMe Data Integrity Test(数据完整性 / R/W 压力验证工具)
与 NVMETEST 的“协议正确性验证”不同,NVMEQRWT 用于 R/W 压力测试和数据完整性验证。 重点目标:确保 SSD 在各种读写场景中不会出现数据损坏NVMETEST。
✅ 核心能力
| 类别 | 功能描述 |
|---|
| 测试方式 | 顺序写 + 随机读写 或 随机写读混合 |
| 队列支持 | 支持最多 15 个队列、每队列 32 条命令并行 |
| 传输范围 | 可测试整个 namespace 或部分 LBA 范围(MINLBA / MAXLBA) |
| 块大小 | 支持 512 / 1K / 2K / 4K / 8K sector |
| 错误检测 | 超时检测、驱动挂死检测、R/W 数据 compare |
一句话总结:NVMEQRWT = 验证 NVMe 设备在高压读写下是否出现坏数据 / 数据损坏。
✅ 三者关系一图理解
| 软件 | 类型 | 目标 | 使用场景 |
|---|
| EDVT | 脚本套件 | NVMe 规范正确性验证 | Protocol 早期 bring-up & spec conformance |
| NVMETEST | NVMe 协议测试平台 | 命令调试 + 脚本执行 + EDVT 执行环境 | Debug、vendor command、协议验证 |
| NVMEQRWT | 数据完整性压力工具 | Data integrity (write → read → verify) | 烧机、可靠性、stress test |
直白理解:
📌 结论
| 软件 | 特点总结 |
|---|
| EDVT | 自动化的 NVMe 规范验证脚本,强调“功能正确性 + invalid test”。 |
| NVMETEST | NVMe 全功能实验室平台,集调试 + 验证 + 脚本运行于一身。 |
| NVMEQRWT | 数据完整性与压力测试,发现 R/W 过程是否存在损坏。 |
更多关于PCIe 6.0/CXL的测试工具和技术,请下载Saniffer公司2026.1.6最新更新的白皮书15.0版本 - PCIe5&6.0, CXL, NVMeNVMoF, SSD, NAND, DDR5, 800GE测试技术和工具白皮书_ver15.0 (低分辨率版本,file size: 62MB);需要高清图片pdf版本的请参见本文底部的联系方式联系我们获取(file size: 210MB)链接: https://pan.baidu.com/s/1ACT-mFPUizQUD2fowqoNHg?pwd=svhx 提取码: svhx
如果你有其任何关于PCIe5&6.0, CXL, NVMe/NVMoF, NAND, DDR5/LPDDR5以及UFS测试方面的我问题想咨询,请访问:访问www.saniffer.cn / www.saniffer.com 访问我们的相关测试工具和产品;或者添加点击左下角“阅读原文”留言,或者saniffer公众号留言,致电021-50807071 / 13127856862,sales@saniffer.com。