Lattice PCIe DevKit端点参考设计是否支持Write-Combining事务?结论

Write-Combining允许CPU将64字节MWr TLP突发到PCIe端点,但有一些含义。

PC CPU具有称为写入组合(WC)的存储器缓存模式。

Write Combining允许CPU的内存管理器缓冲写入相同地址范围的写入。

  • 一旦WC高速缓存行(当前Pentiums为64字节)被填满,存储器管理器就执行突发写入。
  • 在PCIe中,这成为具有64字节有效载荷的TLP。
  • 如果内存范围标记为WC,则内存管理器仅执行WC。
  • 这可以通过将BAR范围标记为具有WC属性的设备驱动程序来完成,或者通过BIOS / OS将PCI / PCIe设备识别为视频设备(类代码)来完成。

Write Combining主要针对视频帧缓冲区,以便在CPU将数百万像素加载到图形硬件中以改变显示图像时提高性能。

  • Write Combining具有以下特征:
  • MWr TLP有效载荷大小可以高达64字节。
  • 可以以任何顺序发送TLP。

没有类似的读操作。

它是软件驱动的。

对PCIe端点的影响: 。PCIe Completer设计必须能够处理1字节到64字节的TLP。 。Lattice PCIe Completer不是为处理Root的突发而设计的。。因此,参考设计不支持Write Combining。 。可以以任何地址顺序将TLP发送到端点。 。WC缓存行刷新规则可以以非顺序地址顺序刷新TLP。。对于旨在将每个MWr作为独立操作(即不依赖于先前或未来的MWr)而设计的端点完成符,这不是问题。。如果端点假定TLP将按顺序到达,则会出现问题 - 将它们直接加载到FIFO中。。他们需要重新订购。。此外,大小可能不总是64字节。 。CPU可以将数据突发到端点,但不能以突发方式检索数据。 。WC在双向型应用中无效。。只有在写入器件时才能获得性能提升。 。WC由CPU上运行的软件驱动。。吞吐量将直接与软件和CPU负载相关。。这不是确定性的。 。结论 。Lattice PCIe参考设计不使用Write Combining。。所有CPU访问都被视为控制平面访问(每个TLP 1个DWORD)。。对于吞吐量应用,与PCIe内核集成的DMA引擎启动对PC系统内存的所有MRd / MWr操作,以便以硬件速度在PCIe端点和系统内存之间移动数据。
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-27 10:29:30 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它