内容来源:V3学院和 【PCIE】PCIE TLP包解析
前言:开始pcie项目之前需要知道,本次项目我们是使用现有的框架RIFFA框架去完成设计的,因此比起具体代码的含义,更注重框架的使用。在开始项目之前需要了解PCIE的组建包过程。
文章目录
先解释两个重要的概念:MPS(Maximum Payload Size)、RCB(Read Completion Boundary)
在PCI Express (PCIe) 中,数据包的分割主要参考的是最大负载大小(MPS),而不是读完成边界(RCB)。
MPS
MPS(Maximum Payload Size)是指 PCIe 传输中单个数据包的最大有效负载大小。有效负载是指不包括协议开销的实际数据部分。在 PCIe 链路的配置过程中,MPS 的值可以是 128 字节、256 字节、512 字节、1024 字节、2048 字节或 4096 字节。选择合适的 MPS 值是优化 PCIe 性能的关键因素之一。

MPS实例:
- GPU到CPU的数据量:假设GPU需要传输一个包含2048字节的图像数据块给CPU。
- 设定MPS:在这个例子中,我们比较两种MPS设置:128字节和512字节。
MPS设置为128字节:
- 数据包分割:由于MPS设置为128字节,2048字节的数据需要被分割成16个单独的数据包(每个包128字节)。
- 传输次数:GPU需要发送16个独立的数据包到CPU。
- 处理开销:每个数据包都需要独立的处理和确认,这可能增加处理开销和延迟。
MPS设置为512字节:
- 数据包分割:同样的2048字节数据现在只需要被分割成4个数据包(每个包512字节)。
- 传输次数:GPU只需发送4个数据包。
- 处理开销:减少的数据包数量意味着减少了处理和确认的次数,从而可能降低总体延迟和提高数据传输效率。
RCB
RCB(Read Completion Boundary)是指 PCIe 设备在处理读请求时,返回数据的对齐边界。RCB 的值通常是 64 字节或 128 字节,表示设备在处理完成读操作时,数据包的边界需要对齐到该值。
RCB实例:
场景:

384

被折叠的 条评论
为什么被折叠?



