我们继续深入学习 NVM Express® Base Specification Revision 2.0b 第 355 页与 8.6.1 节内容:Short Device Self-Test Operation(短设备自检操作),并用中文系统剖析原文结构与机制。
✅ 第八章 · 8.6.1 短设备自检操作(Short Device Self-Test)详细解析
| 段号 |
测试名称 |
测试说明 |
失败标准 |
| 4 |
Metadata 校验 |
验证所有副本的元数据是否一致、可恢复 |
元数据损坏且不可恢复 |
| 5 |
NVM 介质一致性校验(仅扩展测试) |
向每个 NVM 保留区域写入 / 读取 / 比较数据,测试所有控制器通道 |
数据不一致 |
| 6 |
数据完整性维护(扩展) |
执行后台数据整理与维护操作,优先强化数据安全 |
元数据不可恢复 |
| 7 |
介质读取检查 |
随机读取每个可用物理块,确保存储介质可访问 |
无法访问物理块 |
| 8 |
寿命评估 |
检查 SSD 是否接近寿命终点,如写放大、P/E 次数等指标 |
SMART 日志中 Percentage Used 为 255,或内部分析显示继续写入存在风险 |
| 9 |
重复 SMART 检查 |
与段 2 相同,再次确认健康状态 |
任一 Critical Warning 位为 ‘1’ |
二、短设备自检操作的特性
⏱ 执行时间:
- 应在 2 分钟内完成;
- 进度由 Device Self-test Log 页(§5.16.1.7)中 Current Percentage Complete 字段 显示。
三、短设备自检终止条件
| 条件 |
是否必须终止 |
说明 |
| a) 控制器级重置(Controller Level Reset) |
必须终止 |
如复位影响该控制器,自检需中断 |
| b) Format NVM 命令 |
取决于参数,详见下表(图 415) |
会根据 FNA 位与 NSID 组合判断是否终止 |
| c) Sanitize 操作开始时 |
必须终止 |
清除操作会干扰数据结构 |
| d) Device Self-Test 命令的 Self-Test Code 为 Fh(终止) |
必须终止 |
明确指示中止自检 |
| e) 命名空间被移除 |
可选终止 |
控制器可决定是否中断 |
这是判断 Format NVM 命令是否中止自检的决策矩阵:
| FNA 位 1 |
Format NVM 中 NSID |
自检命令中 NSID |
是否中止自检 |
| 0 |
指定命名空间 ID |
同一命名空间 ID |
✅ 是 |
| 0 |
FFFFFFFFh(所有) |
任意活动命名空间 ID |
✅ 是 |
| 0 |
任意命名空间 ID |
FFFFFFFFh(所有) |
🟡 可选 |
| 0 |
FFFFFFFFh |
FFFFFFFFh |
✅ 是 |
| 1 |
忽略 |
忽略 |
✅ 是(始终终止) |
🔑 解释说明:
- FNA 位 1 = 1:表示 Format 操作会终止所有命名空间相关操作,因此一定中止自检。
- NSID = FFFFFFFFh:表示操作适用于所有命名空间,因此也应中止自检。
✅ 总结重点:
| 维度 |
内容 |
| 自检类型 |
短设备自检(≤ 2 分钟) |
| 流程阶段 |
包括 RAM、SMART、元数据、介质一致性等检查 |
| 执行方式 |
后台运行,可被关键命令中断 |
| 典型中断操作 |
Controller Reset、Format NVM、Sanitize、Device Self-Test with Code Fh |
| 格外注意 |
Format NVM 的中断逻辑取决于 FNA 位和命名空间匹配情况 |
如果你希望我们继续分析 8.6.2 Extended Device Self-Test Operation(扩展设备自检) 或 Device Self-Test 命令格式与日志结构定义,可以继续说一声,我来带你深入拆解命令字段与测试报告机制。需要继续吗?🧠📘