管理命令集 - ✅ 一、Device Self-test Log Page(设备自检日志页,LID = 06h) (第199页)
NVME2.0协议解读 1 min read

管理命令集 - ✅ 一、Device Self-test Log Page(设备自检日志页,LID = 06h) (第199页)

Blog Author

我们继续深入分析 NVM Express® Base Specification Revision 2.0b 第 188 页的内容,重点解析 Device Self-test Log Page(设备自检日志页)Self-test Result Data Structure(自检结果数据结构)


✅ 一、Device Self-test Log Page(设备自检日志页,LID = 06h)

📌 功能:

该日志页用于指示设备自检操作的状态,包括自检操作的完成百分比和过去的 20 次自检操作结果。这些信息有助于诊断设备是否存在故障或性能问题。

📌 字段解析:

  1. Current Device Self-Test Operation(当前设备自检操作)
  2. 该字段定义了当前正在进行的设备自检操作的状态。字段值指示自检操作的类型,从无自检到扩展自检。
Bits 描述
Bits 3:0 自检操作的状态:
0h 无自检操作正在进行
1h 正在进行短自检操作
2h 正在进行扩展自检操作
3h-Dh 保留
Eh 厂商特定
Fh 保留

注意:如果自检操作正在进行中(即当前字段为 1h2h),则控制器不会将该字段设置为 0h,直到新的自检结果数据结构创建。


  1. Current Device Self-Test Completion(当前设备自检完成度)
  2. 该字段指示当前自检操作的完成度,表示自检操作已完成的百分比。
Bits 描述
Bits 6:0 自检操作已完成的百分比。例如,25 表示自检完成了 25%,剩余 75% 尚未完成。如果没有正在进行的自检操作(即 Current Device Self-Test Operation0h),则该字段无效。

  1. Newest Self-test Result Data Structure(最新自检结果数据结构)
  2. 该字段包含 最新完成或中止的自检操作 的结果数据结构。每次自检操作完成或中止时,都会创建一个新的自检结果数据结构。
字段 描述
Newest Self-test Result Data Structure 包含最新自检操作的结果数据结构。
  1. 2nd newest Self-test Result Data Structure(第二次最新自检结果数据结构)
  2. 该字段包含第二次最新自检操作的结果数据结构。如果自检操作少于 20 次,该字段会被清空。
字段 描述
2nd newest Self-test Result Data Structure 包含第二次最新的自检操作结果数据结构。

✅ 二、Self-test Result Data Structure(自检结果数据结构)

📌 功能:

该数据结构描述了每次设备自检操作的状态和结果,帮助用户了解设备自检的成功与失败,具体包括操作状态、故障信息等。

📌 字段解析:

  1. Device Self-test Status(设备自检状态)
  2. 该字段指示设备自检的状态和操作的结果。
Bits 描述
Bits 7:4 Self-test Code:自检操作的类型。
0h 保留
1h 短自检操作
2h 扩展自检操作
3h-Dh 保留
Eh 厂商特定
Fh 保留
Bits 3:0 操作结果:指示自检操作的完成状态。
0h 操作完成,无错误
1h 操作被设备自检命令中止
2h 操作被控制器级重置中止
3h 操作被从命名空间清除的命名空间中止
4h 操作被格式化 NVM 命令中止
5h 执行自检时发生严重错误或未知测试错误,操作未完成
6h 操作完成,但存在失败的段且未标识失败段
7h 操作完成,但存在失败的段,且失败的段在 Segment Number 字段中标识
8h 操作因未知原因中止
9h 操作因清除操作中止
Fh 未使用条目(不包含测试结果)

  1. Segment Number(段号)
  2. 如果自检操作结果为 7h(存在失败段),该字段指示第一个失败的段号。
字段 描述
Segment Number 指示自检操作失败的第一个段号。如果设备自检状态不是 7h,则该字段无效。

  1. Valid Diagnostic Information(有效诊断信息)
  2. 该字段指示诊断失败信息的有效性。包括 Status CodeStatus Code TypeFailing LBANamespace Identifier 等字段的有效性。
字段 描述
Bits 7:4 保留
Bit 3 (SC Valid) 如果为 1,则表示 Status Code 字段有效
Bit 2 (SCT Valid) 如果为 1,则表示 Status Code Type 字段有效
Bit 1 (FLBA Valid) 如果为 1,则表示 Failing LBA 字段有效
Bit 0 (NSID Valid) 如果为 1,则表示 Namespace Identifier 字段有效

  1. Reserved(保留字段)
  2. 用于未来扩展的保留字段,通常在实现中不使用。

✅ 三、总结与学习建议

模块 建议
自检操作监控 学习如何根据 Device Self-test Log 监控设备的自检状态,确保设备在自检过程中没有发生故障。
自检结果解析 通过 Self-test Result Data Structure,分析设备自检的完成状态、是否有错误发生,以及错误的具体细节,特别是 Segment NumberValid Diagnostic Information 字段。
故障诊断与追踪 学会使用 自检结果数据结构 中的诊断信息,追踪自检失败的原因,特别是如何通过 Failing LBANamespace Identifier 字段找到出现问题的具体位置。

如果你需要:

  • 设备自检操作与故障分析图解,展示如何基于自检结果结构诊断设备问题
  • 自检操作执行状态监控,帮助你更好地理解如何实时跟踪自检进度和错误

我可以为你提供相关的图表和示意图,帮助你更好地理解设备自检与故障处理机制。你希望从哪里开始呢?