首页 > 解决方案 > 何时在内存映射 PCIe 配置中创建 TLP 数据包?

问题描述

当涉及到 PCIe 连接时,我有一个理解问题。在 PCIe 接口中,数据使用 TLP 数据包在设备之间传输。在内存映射配置中,如果某个软件想要将数据发送到设备,则它必须将数据写入预定义的内存位置,该内存位置映射到该特定设备。

TLP 数据包何时创建?数据是否存储在内存中并且设备必须使用 TLP 数据包(例如内存读取)“获取”数据,或者 CPU 的 MMU 是否自动检测到这是一个映射的内存区域并自动将数据“转换”为TLP 数据包并通过接口发送它们?

先感谢您!

标签: memorycpupci-ebus

解决方案


CPU 使用物理 MMIO 地址生成内存事务。基于地址,内存事务被路由到适当的根端口。到目前为止,该操作超出了 PCIe 规范的范围。根端口构建 TLP 并通过 PCIe 将其发送出去。如果操作是读取(需要响应),根端口会从设备接收到带有数据的响应 TLP,并将数据发送回适当的 CPU。


推荐阅读