数据结构 - PCIe 可修正和不可修正错误的附加硬件错误信息(图234) (第222页)
NVME2.0协议解读 1 min read

数据结构 - PCIe 可修正和不可修正错误的附加硬件错误信息(图234) (第222页)

Blog Author

PCIe 可修正和不可修正错误的附加硬件错误信息(图234)

在NVM Express规范中,PCIe错误被分为可修正错误和不可修正错误。以下是有关这些错误的附加硬件信息的详细描述,包括错误状态、掩码以及其他相关的PCIe AER(高级错误报告)信息。

附加硬件错误信息字段

字节范围 描述
01:00 PCIe AER Supported:如果设置为1,则表示支持PCIe AER错误报告,并且包含多个与错误状态相关的字段。如果设置为0,则表示不支持AER错误报告,相关的字段将不被报告。
15:03 保留:此部分为保留字段,未定义。
31:16 PCIe AER 错误状态:此字段包含PCIe AER错误状态,依据错误类型(可修正或不可修正)报告。具体包括:
- 可修正错误状态:PCIe AER Correctable Error Status Register的内容。
- 不可修正错误状态:PCIe AER Uncorrectable Error Status Register的内容。
47:32 PCIe AER 错误掩码:此字段包含:
- 可修正错误掩码:PCIe AER Correctable Error Mask Register的内容。
- 不可修正错误掩码:PCIe AER Uncorrectable Error Mask Register的内容。
63:48 PCIe AER 错误头日志寄存器:此字段包含PCIe AER Header Log Register的内容(如果支持),用于提供更多错误头日志信息。
79:64 PCIe AER TLP 前缀日志寄存器:此字段包含PCIe AER TLP Prefix Log Register的内容(如果支持),用于提供传输层协议(TLP)的更多日志信息。

字段详细解释

  • PCIe AER Supported:该字段指示控制器是否支持高级错误报告(AER)。如果PCIe AER Supported位设置为1,则可以报告AER错误状态、掩码、头日志寄存器和TLP前缀日志寄存器。如果设置为0,则不会报告这些字段。

  • PCIe AER 错误状态(PCIe AER Error Status):该字段反映了错误的类型和状态。如果是可修正错误,则报告来自PCIe AER Correctable Error Status Register的内容;如果是不可修正错误,则报告来自PCIe AER Uncorrectable Error Status Register的内容。

  • PCIe AER 错误掩码(PCIe AER Error Mask):该字段包含了PCIe AER错误掩码的内容,用来指示哪些错误被屏蔽或者需要报告。类似于错误状态,可修正错误掩码不可修正错误掩码分别报告来自PCIe AER的掩码信息。

  • PCIe AER 错误头日志寄存器(PCIe AER Header Log Register):用于报告与错误相关的头信息,如果设备支持该功能,控制器会返回该寄存器的内容。

  • PCIe AER TLP 前缀日志寄存器(PCIe AER TLP Prefix Log Register):该寄存器提供与TLP前缀相关的日志信息,有助于分析传输错误。

总结

在NVM Express规范中,PCIe错误处理涉及可修正和不可修正的错误。通过上述字段,系统能够收集详细的错误信息,包括AER错误状态、错误掩码和TLP日志。控制器使用这些信息来提供对硬件故障的详细描述,帮助开发者和维护人员快速识别和解决问题。

这些错误信息不仅对于故障诊断非常重要,还帮助开发者优化PCIe链路的可靠性和性能。