PCI 地址空间

3
我有一个关于PCI的问题。PCI有三个地址空间:PCI I/O、PCI内存和PCI配置空间。它们各自的物理位置在哪里?在PCI控制器中吗?还是在设备中?它们中的任何一个都是系统RAM的一部分吗?
2个回答

6
对于物理插入式PCI卡,设备始终处于活动状态。设备必须宣布自己是什么(配置空间),并保持本地状态独立于主机(I/O和内存空间)。
然而,PCI经常被滥用为配置的机制,有许多设备实际上并不通过PCI接口进行通信,而只是模拟它 - PCI Express卡始终显示为PCI设备,但它们之间可能存在的神奇33MHz总线已经消失了。
随着现在几乎所有东西都集成在芯片组中,大多数PCI设备都是这样的伪装者。然而,它们仍然遵循PCI规定的一切。例如,您北桥上的嵌入式图形将使用系统RAM,但对于图形设备使用的所有RAM,计算机将告诉操作系统该RAM不存在。
就操作系统而言,设备始终带有自己的内存。

0

我想对此添加一些评论。

所有PCI设备都有一个PCI配置空间作为BAR0。您可以在该空间中找到有关PCI设备的信息。它位于设备上。

关于PCI I/O和PCI内存,您可以将内存空间放入其中任何一个。这取决于您的软件方案。如果您的PCI设备想要访问其主机内存数据,则可以将内存空间放入PCI控制器中。(例如,在网络驱动程序中的tx包缓冲区)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接