PCIe协议之RCB、MPS、MRRS详解

PCIe协议之RCB、MPS、MRRS详解PCIe 总线的存储器写请求 存储器读完成等 TLP 中含有数据负载 即 DataPayload

大家好,欢迎来到IT知识分享网。

✨前言:

PCIe总线的存储器写请求、存储器读完成等TLP中含有数据负载,即Data Payload。Data Payload的长度和MPS(Max Payload Size)、MRRS(Max Read Request Size)和RCB(Read Completion Boundary)相关。

✨一、RCB介绍

🌟1.1 什么是RCB?

🌟1.2 RCB配置

🌟1.3 RCB的应用

当主机或设备在PCI Express (PCIe) 总线上发出一笔Memory Read请求(MRd)时,目标设备或内存控制器需要按照相应的规则进行处理,并生成一个或多个完整的响应(Completion,Cpl)。为了满足RCB(Read Completion Boundary)规则,返回的数据可能需要被拆分成多个CplD(Completion with Data)数据包。这里是一个简化的步骤说明,展示满足RCB规则的Completion响应策略:

🌟1.4 举例说明:

⭐️1.4.1 情况1:4个CplD,每个64字节
⭐️1.4.2 情况2:如果MPS更小
⭐️1.4.3 情况3:1个CplD,128字节 + 2个CplD,64字节

✨二、MPS介绍

🌟2.1 什么是MPS?

MPS(Max Payload Size)表示TLP报文中数据负载的长度。PCIe总线规MPS的最大值为4KB,但PCIe设备并不一定都能够按照最大长度发送数据负载。因此实际使用的MPS由链路两端的设备Function协商决定。当发送的数据长度超过MPS时,这段数据会被分割成多个TLP报文发送,若接收的TLP报文数据负载超过MPS,则接收端会认为这是一个非法的TLP。对于存储器读完成TLP报文,数据负载的长度也不能超过MPS,如果超过MPS,则需要发送多个读完成报文,同时也要满足RCB的要求。

🌟2.2 不同的MPS的作用

📌MPS的大小在系统初始化或配置时设定,通常可以从128字节到4096字节不等。不同大小的MPS对PCIe系统的性能有不同的影响,主要体现在以下几个方面:

✨三、MRRS介绍

🌟3.1 什么是MRRS?

MRRS(Max Read Request Size)参数决定了PCIe设备Function使用存储器读请求,一次能从目标设备读取多少数据,即PCIe设备Function的读请求TLP中的Lewngth字段不能超过MRRS。若PCIe设备Function使用存储器读请求读取的数据长度超过了MRRS,则需要发送多个存储器读请求TLP。PCIe总线规定MRRS最大值为4KB,通常情况下PCIe设备Function的MRRS都会小于这个值。

🌟3.2 MRRS作用

✨四、MPS、MRRS的修改

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/129113.html

(0)
上一篇 2025-08-26 18:10
下一篇 2025-08-26 18:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信