什么是链路CRC(LCRC)和端到端循环冗余校验(ECRC),以及它们是如何使用的?

外围组件互连Express(PCIE)为数据的传输提供了两种不同的CRC测试。LCRC或链路CRC是在数据链路层中处理的。可选的ECRC或端点CRC是在事务层中处理的。这些CRC函数中的每一个都可以用来验证正确的数据已经被接收,但是它们在处理错误方面是不同的。

LCRC用于验证在单个PCIE链路上发送的数据。如果校验失败,则在数据链路层中执行此CRC,从而产生NAK。数据链路层中的一个NAK迫使发送设备重新发送错误的TLP。具有LCRC错误的TLP直接终止于数据链路层,并且不传递到事务层。

ECRC用于验证从源PCIE端口发送到最终目的地PCIE端口的数据。对于跳过交换机或其他类型的连接解决方案的系统,ECRC可以用来确保TLP在整个路径上是正确的。源端口将ECRC添加到事务层中TLP的末尾。每个跳数的数据链路层不改变ECRC。最后端口检查ECRC与接收到的TLP。如果发生错误,接收机将消息传递回发射机。这种错误处理是由PCIE的高级错误报告(AER)特性来执行的。发送AER能力结构中的特定状态位,并存储错误TLP的完整标头以进行软件询问。发送设备如何处理ECRC错误超出了PCIE规范的范围。

在网格中,PCIe IP核LCRC作为数据链路层的一部分被包含。ECRC是一个可选的功能,可以包括在内。ECRC使用大约1K查找表(LUTS)为生成器和检查器。有关如何控制ECRC和可用端口的更多信息,请参阅IIPUG85、PCIE IP核用户手册。

HTTP//www. LaTeleSeM.COM/VIEWIX文档?文档文件ID=38406

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-27 10:10:53 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它