当前位置: 首页> 科技> 名企 > 《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(3)

《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(3)

时间:2025/7/10 13:17:59来源:https://blog.csdn.net/phmatthaus/article/details/141817683 浏览次数:2次

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(2)

7.1 数据链路层的组成结构

数据链路层使用ACK/NAK协议保证TLP的正确传送。ACK/NAK协议是一种滑动窗口协议(该协议的详细介绍见7.2节)。其中Sequence前缀存放当前TLP的序列号,滑动窗口协议需要使用这个序列号。该序列号可以循环使用,但在同一个时间段内,一条PCIe链路不能含有Sequence前缀相同的多个TLP。而LCRC后缀存放当前TLP的校验和。

PCIe总线的数据链路层使用Replay Buffer(PCIe规范将这个Replay Buffer称为Retry Buffer)和Error Check部件共同保证数据传送的可靠性和完整性。来自事务层的TLP首先暂存在Replay Buffer中,然后发送到目标设备。源设备的数据链路层根据来自目标设备的ACK/NAK DLLP报文决定是重发这些TLP、还是清除保存在Replay Buffer中的TLP。

Replay Buffer的大小决定了事务层可以暂存在数据链路层的报文数。Replay Buffer的容量越大,在PCIe设备发送流水线中容纳的报文就越多,从而也容易保证流水线不会因为发送部件出现underrun中断;但在另一方面,Replay Buffer的容量越大,占用的系统资源也就越多,从而影响PCIe设备的功耗。在一个实际应用中,芯片设计者需要根据PCIe链路的延时确定数据链路层Replay Buffer的大小。

在PCIe设备的数据链路层中,还含有一个Error Check单元(上边提到的Error Check部件)。PCIe设备使用Error Check单元检查接收到的TLP,并决定如何向对端设备进行报文回应。如果TLP被正确接收,PCIe设备将向对端设备发送ACK DLLP(数据链路层为提高PCIe链路的利用率,并不会每成功接收一个TLP后,都发送一个ACK DLLP);如果TLP没有被正确接收,PCIe设备将向对端设备发送NAK DLLP。

除了ACK/NAK DLLP之外,数据链路层还定义了一系列数据链路层报文DLLP,以保证PCIe链路的正常工作。这些DLLP都产生于数据链路层,并终止于数据链路层,并不会传送到事务层。

更多内容请看下回。

关键字:《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(3)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: