错误处理 - 📄 第 8.21(续)- Sanitize 状态监测与失败恢复机制 (第432页)
NVME2.0协议解读 1 min read

错误处理 - 📄 第 8.21(续)- Sanitize 状态监测与失败恢复机制 (第432页)

Blog Author

我们继续深入中文解析 NVM Express® Base Specification Revision 2.0b 第 8.21 节的尾段内容 —— Sanitize 状态监测机制与失败恢复流程,帮助你掌握 “清除过程的进展跟踪、结果上报与故障处理”的核心机制。


📄 第 8.21(续)- Sanitize 状态监测与失败恢复机制


🔍 Sanitize Status Log Page:状态日志页的功能

该日志页(详见 5.16.1.25 节)记录:

  1. 当前是否有清除(Sanitize)任务在执行;
  2. 清除操作的具体参数(Sanitize 类型等);
  3. 最近一次 Sanitize 的完成状态;
  4. 各种类型 Sanitize 的 预计所需时间
  5. 一个重要的全局标志位:Global Data Erased

Global Data Erased 位

用于表示 NVM 子系统是否仍可能残留用户数据:

  • 1:表示用户数据已全部不可恢复(已执行成功的清除);
  • 0:表示用户数据可能仍然存在

🕘 Sanitize 状态日志页的更新时机:

  1. 控制器上电准备完成前初始化(详见 3.5.3 / 3.5.4);
  2. Sanitize 命令完成前更新状态;
  3. 清除任务真正完成时(包括异步事件上报前);
  4. 清除过程执行中建议定期更新,用于让主机可轮询查看进度。

主机对进度的查看建议:

  • 主机可轮询 Sanitize Status 日志页来查看清除进度;
  • 但应避免过度查询(建议每几分钟一次),以免影响 Sanitize 本身的执行效率。

✅ Sanitize 操作完成后的行为:

Sanitize 成功,则:

  • 设置 Global Data Erased = 1
  • 更新日志页;
  • 发出 异步事件通知(Asynchronous Event Request 命令):
字段
Log Page Identifier 81h(Sanitize Status)
Async Event Info Sanitize Operation CompletedSanitize Operation Completed With Unexpected Deallocation
Async Event Type 110b(I/O 命令特定状态)
  • 所有控制器恢复原有的电源管理行为(若清除期间暂停)。

📖 补充建议:

主机在接收到异步事件后,应:

使用 Retain Asynchronous Event = 0 读取 Sanitize 状态日志页,清除异步事件记录。


❌ 如果 Sanitize 操作失败,该怎么办?

所有控制器将采取如下动作:

  • 所有清除期间禁止执行的命令会返回错误状态码:Sanitize Failed
  • 直到满足以下条件之一,才能恢复正常操作:

  • 主机重新启动一个成功的 Sanitize 操作;

  • 主机使用 “退出失败模式”操作(Exit Failure Mode) 来清除失败状态。

✅ 协议支持要求总结:

若控制器宣称支持 Sanitize 命令,则必须同时支持:

功能 说明
Sanitize Status 日志页 状态追踪与进度可视化
异步事件:Sanitize Operation Completed 清除成功时触发
异步事件:Sanitize Completed With Unexpected Deallocation 若支持 Sanitize Config 特性则还需支持此事件(表示发生了未预期的地址释放)
Exit Failure Mode 操作 用于从失败状态中手动恢复(如清除失败后)

🧠 总结核心逻辑:

flowchart TD
A[主机发出 Sanitize 命令] --> B{参数合法?}
B --  --> F[命令失败,状态不更新]
B --  --> C[控制器后台执行清除]
C --> D[更新 Sanitize Status 日志页]
D --> E[完成后发出 Async Event]
E --> G{是否成功?}
G --  --> H[Global Data Erased = 1]
G --  --> I[系统进入 Sanitize Failed 状态]
I --> J[主机可选择重新清除或执行 Exit Failure Mode]

是否需要我为你整理一个「Sanitize 整体执行状态机图 + 状态日志字段中文速查表」?也可按你需求生成 PPT 或 PDF 学习资料。随时告诉我你的需求~