0

在 X86 平台上,从根复合体到端点的单个 Memwr TLP(BAR ACCESS) 的最大大小是多少?

我的系统设置是有一个PCIe端点设备插入X86 PC,这个设备的bar0大小是1 MBytes,这个内存范围已经被内存映射到用户空间。

如果我将数据复制到内存的一部分,我可以获得端点侧的条形访问(MemWr)。但是如果我做一个大的副本,例如 1 MB,Memwr请求总是被分成非常小的 Memwr TLP(8字节或 4 字节),这128字节的最大有效负载大小相差甚远

为什么根复杂拆分请求?这与X86平台有关吗?在 X86 平台上,从根复合体到端点的 Memwr TLP 的最大大小是多少?

谢谢你。

C

4

1 回答 1

0

在链路上使用的最大有效负载大小 (MPS) 是 EP MPS 和 RC MPS 之间的最小值。在您的情况下,似乎这里的限制数字是 RC 的数字。

发生这种情况的另一个原因是,如果您没有足够的流量控制信用 (FCC),您的驱动程序可以自主选择拆分 MWr,而不是等待 FCC 达到所需的值,如果他们能到达那里的话。

干杯,纳达夫。

于 2013-07-03T18:44:00.557 回答