小编Jac*_*ani的帖子

PCI Express - 关于 BAR、内存寻址和物理内存的说明

我是一个开始了解 PCI Express 协议的绝对初学者,我需要对其机制进行一些说明。

我知道 PCI Express 端点设备可能在系统内存中映射了一些内存 BAR(它总是 RAM 是我们正在谈论的系统内存吗?)。我需要了解当我从 CPU 向设备 (A) 发送内存读取请求、寻址某个内存地址(第一个内存 BAR,偏移量 0)时会发生什么。

假设我的设备没有任何设备内存。

代表 CPU 的根联合体创建 TLP 并将其转发到设备 (A),因为目的地的内存地址已分配给 (A)。

A 接收 TLP,将其解包,并创建一个包含来自其内部应用程序逻辑的数据的完成 TLP。

现在,TLP 返回到解包它的 Root Complex,收集有趣的数据并将其返回给 CPU。

在此通信过程中,系统内存的作用是什么?没有任何?

根联合体是否与系统的物理内存通信(在这种情况下),而不是向/从端点发送和接收数据包?

对某些人来说,这似乎是一个愚蠢的问题,但对我来说,了解物理内存与分配给每个 PCI Express 设备的内存地址 BAR 之间的联系至关重要。

memory pci-express pci peripherals

6
推荐指数
1
解决办法
2万
查看次数

PCI Express - 内存读/写事务中的内存寻址与物理内存

我试图在 PCI Express 事务中找到内存条(基地址寄存器)和物理内存之间的链接。在我的最后一个问题中,我开始了解当 CPU 在某个内存地址读/写时会发生什么,现在我需要深入了解 PCI Express 事务。

我需要了解每个 PCI Express 内存读/写事务中是否涉及物理 RAM。

1) 设备内存条寻址的物理内存是否驻留在设备本身中?或者它驻留在RAM中?

2) 当我对没有内置物理内存的 PCI Express 设备启动内存读/写事务时,指定内存地址,如果它没有映射到内部物理内存,设备如何访问它?当我的设备返回一个带有数据的事务包时,根联合体是否将数据提供给 cpu 并将其插入到物理 RAM 中?

memory pci-express pci transaction

2
推荐指数
1
解决办法
4089
查看次数

标签 统计

memory ×2

pci ×2

pci-express ×2

peripherals ×1

transaction ×1