数据结构与日志格式 - 第201页
NVME2.0协议解读 1 min read

数据结构与日志格式 - 第201页

Blog Author

我们继续深入分析 NVM Express® Base Specification Revision 2.0b 第 190 页的内容,特别是关于 Telemetry Host-Initiated Log(主机发起的遥测日志) 的字段和细节。


✅ 一、Telemetry Host-Initiated Log(主机发起的遥测日志,LID = 07h)

📌 功能:

该日志页用于捕获 控制器的内部状态信息,由主机发起。控制器会根据主机发起的 Get Log Page 命令更新该日志。主机可以通过设置 Create Telemetry Host-Initiated Data 位,要求控制器捕获其内部状态数据。该日志可以用于监控控制器的健康状况和性能。

📌 字段解析:

  1. Log Identifier(日志标识符)
  2. 该字段的值应始终为 07h,表示这是一个主机发起的遥测日志。
字段 描述
Log Identifier 固定值 07h,表示这是遥测日志。

  1. Reserved(保留字段)
  2. 该字段保留用于未来扩展,当前不会使用。
字段 描述
Reserved 保留字段,通常不使用。

  1. IEEE OUI Identifier(IEEE OUI 标识符)
  2. 该字段包含控制器供应商的 组织唯一标识符(OUI),用于标识控制器的制造商。OUI 是由 IEEE 分配的,并可以在 IEEE 官方网站上查询。
字段 描述
IEEE OUI Identifier (IEEE) 控制器供应商的 IEEE OUI 标识符。如果该字段为 0h,则表示没有 OUI 标识符。

注意:IEEE OUI 标识符是一个有效的 IEEE/RAC 分配的标识符,可以在 IEEE 官方网站 查询。


  1. Telemetry Host-Initiated Data Area 1 Last Block
  2. 该字段指示 Telemetry Host-Initiated Data Area 1 的最后一个数据块的值。若该数据区没有数据,则该字段应设置为 0h
字段 描述
Telemetry Host-Initiated Data Area 1 Last Block 指示 Data Area 1 的最后数据块。如果没有数据,则该字段为 0h

注意:如果该字段不为 0h,则表示 Telemetry Host-Initiated Data Area 1 的数据从块 1h 开始,直到该字段指示的块。


  1. Telemetry Host-Initiated Data Area 2 Last Block
  2. 该字段指示 Telemetry Host-Initiated Data Area 2 的最后一个数据块的值。该值必须大于或等于 Data Area 1 Last Block 中的值。
字段 描述
Telemetry Host-Initiated Data Area 2 Last Block 指示 Data Area 2 的最后数据块。如果该字段不为 0h,表示该数据区从块 1h 开始,直到该字段指示的块。

  1. Telemetry Host-Initiated Data Area 3 Last Block
  2. 该字段指示 Telemetry Host-Initiated Data Area 3 的最后一个数据块的值。该值必须大于或等于 Data Area 2 Last Block 中的值。
字段 描述
Telemetry Host-Initiated Data Area 3 Last Block 指示 Data Area 3 的最后数据块。如果该字段不为 0h,则该数据区从块 1h 开始,直到该字段指示的块。

  1. Reserved(保留字段)
  2. 该字段用于将来可能的扩展,当前不使用。
字段 描述
Reserved 保留字段,未定义用途。

📌 遥测数据的大小与处理:

  • 日志页大小:日志页的大小是可变的,具体取决于 Log Page Attributes 字段中第 6 位的设置。
  • 如果该位为 0,则日志页的大小由 Telemetry Host-Initiated Data Area 3 Last Block 字段计算。
  • 如果该位为 1,且 Extended Telemetry Data Area 4 Supported (ETDAS) 位为 1h,则日志页的大小由 Telemetry Host-Initiated Data Area 4 Last Block 字段计算。
  • 如果 ETDAS 位为 0h,则日志页大小仍然由 Data Area 3 的最后一个块指示。

  • 数据传输要求:主机请求的数据传输必须是 512 字节的倍数,否则控制器会返回 Invalid Field in Command 错误。


✅ 二、总结与学习建议

模块 建议
遥测数据捕获与更新 学习如何通过 Create Telemetry Host-Initiated Data 字段触发遥测数据的捕获,了解控制器如何更新遥测信息。
日志页大小与计算 理解 Log Page Attributes 字段中第 6 位的作用,学习如何根据不同的设置计算日志页的大小,确保数据完整性。
遥测数据区域管理 学习如何根据 Telemetry Host-Initiated Data Area 字段划分遥测数据区域,确保数据按块正确存储和传输。

如果你需要:

  • 遥测数据区域划分图解,帮助理解如何组织遥测数据
  • 遥测日志更新流程图,帮助你理解遥测数据如何被更新与捕获

我可以为你提供相关的图解,帮助你更好地理解遥测日志的工作原理。你需要从哪个部分开始呢?