数据结构与日志格式 - 第201页
我们继续深入分析 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 位,要求控制器捕获其内部状态数据。该日志可以用于监控控制器的健康状况和性能。
📌 字段解析:
- Log Identifier(日志标识符)
- 该字段的值应始终为
07h,表示这是一个主机发起的遥测日志。
| 字段 | 描述 |
|---|---|
| Log Identifier | 固定值 07h,表示这是遥测日志。 |
- Reserved(保留字段)
- 该字段保留用于未来扩展,当前不会使用。
| 字段 | 描述 |
|---|---|
| Reserved | 保留字段,通常不使用。 |
- IEEE OUI Identifier(IEEE OUI 标识符)
- 该字段包含控制器供应商的 组织唯一标识符(OUI),用于标识控制器的制造商。OUI 是由 IEEE 分配的,并可以在 IEEE 官方网站上查询。
| 字段 | 描述 |
|---|---|
| IEEE OUI Identifier (IEEE) | 控制器供应商的 IEEE OUI 标识符。如果该字段为 0h,则表示没有 OUI 标识符。 |
注意:IEEE OUI 标识符是一个有效的 IEEE/RAC 分配的标识符,可以在 IEEE 官方网站 查询。
- Telemetry Host-Initiated Data Area 1 Last Block
- 该字段指示 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开始,直到该字段指示的块。
- Telemetry Host-Initiated Data Area 2 Last Block
- 该字段指示 Telemetry Host-Initiated Data Area 2 的最后一个数据块的值。该值必须大于或等于 Data Area 1 Last Block 中的值。
| 字段 | 描述 |
|---|---|
| Telemetry Host-Initiated Data Area 2 Last Block | 指示 Data Area 2 的最后数据块。如果该字段不为 0h,表示该数据区从块 1h 开始,直到该字段指示的块。 |
- Telemetry Host-Initiated Data Area 3 Last Block
- 该字段指示 Telemetry Host-Initiated Data Area 3 的最后一个数据块的值。该值必须大于或等于 Data Area 2 Last Block 中的值。
| 字段 | 描述 |
|---|---|
| Telemetry Host-Initiated Data Area 3 Last Block | 指示 Data Area 3 的最后数据块。如果该字段不为 0h,则该数据区从块 1h 开始,直到该字段指示的块。 |
- Reserved(保留字段)
- 该字段用于将来可能的扩展,当前不使用。
| 字段 | 描述 |
|---|---|
| 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 字段划分遥测数据区域,确保数据按块正确存储和传输。 |
如果你需要:
- 遥测数据区域划分图解,帮助理解如何组织遥测数据
- 遥测日志更新流程图,帮助你理解遥测数据如何被更新与捕获
我可以为你提供相关的图解,帮助你更好地理解遥测日志的工作原理。你需要从哪个部分开始呢?