1 PCIe两种错误报告机制
Baseline Error Reporting (基线错误报告):
这是所有PCIe设备必须支持的基本错误报告机制。基线错误报告提供了一组基本的错误检测和报告功能,它包括的功能有:
错误检测:能够检测到不同类型的错误,例如数据传输错误、信号完整性问题和协议违规等。
错误日志记录:捕获错误发生时的相关信息,并将这些信息存储在设备的配置空间的特定寄存器中。
错误指示:使用PCIe能力结构中的Status位来指示已检测到一个或多个错误。
该机制主要关注在系统中的关键和必须报告的错误,从而确保系统具有最基本的错误处理能力。
Advanced Error Reporting (AER,高级错误报告):
AER是一种可选的错误报告机制,为了能更详尽地检测、报告和管理错误而设计。AER提供了比基线错误报告更细粒度的错误检测和报告能力,这包括:
更详细的错误分类:AER能够识别和区分更多种类的错误,比如不可靠的数据传输、内部错误、头部日志信息等。
准确的错误定位:它能帮助系统确定错误发生在哪个具体的端点或链路上,这使得故障排除和维护工作更为直接和高效。
错误源标识:记录和报告引发错误的具体设备。
错误日志扩展:提供比基线错误报告更多的错误日志和信息记录,这有助于后续分析和问题解决。
可控的错误响应:允许系统管理员或管理软件来配置错误响应策略,比如根据情况决定是否忽略某些错误,或执行特定的恢复操作。
2 PCIe错误报告分类
由上图可知PCIe错误报告分类可分为可更正错误 (Correctable Errors) 和不可更正错误 (Uncorrectable Errors)。这两种错误类型反映了错误的严重性以及系统能否在不影响运行的情况下修复错误
可更正错误 (Correctable Errors):
可更正错误是指那些不会对系统的数据完整性造成影响,可以在不通知操作系统的情况下自动修复的错误。PCIe设备或交换机检测到这类错误后,通常会尝试自我修正,并可能记录错误事件以供之后分析。这种错误通常是由于瞬态问题,比如电磁干扰或小的信号完整性问题所引起的。PCIe中一些可更正错误的例子包括:
接收器错误 (Receiver Errors)
恢复的数据链路层错误 (Recovered Data L