大家好,欢迎来到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