正奥网
当前位置:首页»综合

【博文连载】PCIe扫盲——PCIe错误检测机制

日期:2019-12-27 来源: 评论:

[摘要]需要注意的是,ECRC是AER中的一部分,要想使用ECRC,该PCIe设备必须是支持AER的。如果按照错误产生的层(Layer)来分,则可以分为物理层错误,数据链路层错误和事务层错误。物理层错误(Physical Layer Errors)...……

需要注意的是,ECRC是AER中的一部分,要想使用ECRC,该PCIe设备必须是支持AER的。

如果按照错误产生的层(Layer)来分,则可以分为物理层错误,数据链路层错误和事务层错误。

物理层错误(Physical Layer Errors)主要有:

· 8b/10b编解码异常

· Framing异常(8b/10b编码中是可选的,128b/130b中是必选的)

· Elastic Buffer错误(可选的)

· 起始字符失锁(Loss of Symbol Lock)或者通道对齐失锁(Lane Deskew)(可选的)

数据链路层错误(Data Link Layer Errors)主要有:

· LCRC校检失败

· 序列号(Sequence Number)异常

· DLLP中的16-bit CRC校检失败

· 链路层协议错误(Link Layer Protocol Errors)

事务层错误(Transaction Layer Errors)主要有:

· ERCR校检失败(可选的)

· 异常的TLP(Malformed TLP)(即TLP的格式异常)

· 流量控制协议异常(Flow Control Protocol Violation)

· 不支持的请求

· 数据损坏(Data Corruption,又称为Poisoned Packet)

· Completer Abort(可选的)

· 接收端溢出(Receiver Overflow)(可选的)

· 返回包超时(Completion Timeout)

· 不对应的返回包(Unexpected Completion,即Completion与发出的Request不一致)

当接收端的物理层检测到TLP存在错误时,如果再将该TLP继续传送至数据链路层和事务层必然也会发现错误。而过多的错误会让错误分析与处理变得困难。因此,没有必要在向上传递该TLP,而是将其直接扔掉,并报告相应的错误。

然而,即使这样,PCIe总线的错误报告中也有很多错误源自同一个错误源。因此需要对错误进行优先级排序,使得错误源(最底层的错误)的优先级更高,能够最先得到处理。PCIe总线中的错误优先级排序如下(优先级从高到低):

· 不可更正的内部错误(Uncorrectable Internal Error)

· 接收端Buffer溢出

· 流量控制协议错误

· ECRC校检失败

· 异常的TLP(Malformed TLP)

· AtomicOp Egress Blocked

· TLP包头异常(TLP Prefix Blocked)

· 访问控制服务(Access Control Services,ACS)异常

· MC(Multi-cast) Blocked TLP

· 不支持的请求(Unsupported Request,UR),Completer Abort(CA)或者不对应的返回包(Unexpected Completion)

· 接收到损坏的数据包(Poisoned Packet)返回搜狐,查看更多

您至少需要输入5个字

相关内容

编辑精选

copyright © 2017 https://www.zabeng.com 正奥网 版权所有