首先这篇文章跟大家之前看到的文章不一样,通过耐心阅读相信大家一定能有深刻的理解。
一、各个参数含义
1、MPS(Max Payload Size)
该参数含义是一个TLP包里携带的有效净荷的最大值是多少字节(该限制条件同时适用于写操作和读操作)。
2、MRRS(Max Read Request Size)
该参数含义是一个TLP读请求包,一次最多能向接收端请求读出多少字节。
请求读多少字节是在TLP包头的Length字段(见上图)指定的。要注意,Length是以DW(4个字节)为单位的,而MPS/MRRS/RCB参数的单位都是字节。
3、RCB(Read Completion Bounary)
该参数含义是接收端在向发送端返回读响应数据时,多个TLP包的大小必须是RCB的倍数,即必须对齐到RCB地址边界上。
这个参数不容易理解,下面通过一个具体例子来感受一下。
For instance if you read 100h (256) bytes from address 00010028h and the RCB is 64 bytes. The data will most likely be returned as follows:
a) 先返回一个24 bytes长度的CplD包(为什么会先返回24字节长度的包?原因是首地址10028h不是RCB值即64B的整倍数,为了对齐地址,需要先返回一个24B的包,这样地址就对齐到了10040h)。对应地,地址递增情况是:10028h + 18h = 10040h<