二、PCIE的TLP包的封包解包原理

内容来源: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实例:

场景:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值