我对PCI有疑问。 PCI有三个地址空间; PCI I / O,PCI内存和PCI配置空间。他们每个人身处何处?在PCI控制器?还是在设备中?它们中的任何一个都是系统RAM的一部分吗?
答案 0 :(得分:6)
对于物理插入式PCI卡,它始终位于设备上。设备必须宣布它是什么(配置空间),并保持独立于主机的本地状态(I / O和内存空间)
然而,PCI经常被滥用作为配置机制,并且有许多设备实际上并不通过PCI接口进行通信而只是伪造它 - PCI Express卡总是显示为PCI设备,但神奇的33MHz总线本来可以放在他们之间的已经神奇地消失了。如今,随着芯片组中几乎所有内容的集成,大多数PCI设备都是假货。但是,他们仍然坚持PCI所要求的一切。例如,北桥上的嵌入式图形将使用系统RAM,但对于图形设备使用的所有RAM,计算机将告诉操作系统相同的RAM不存在。
就操作系统而言,设备总是带有它自己的记忆。
答案 1 :(得分:0)
我想对此发表一些评论。
所有PCI设备的PCI配置空间都为BAR0。您可以在该空间中找到有关PCI设备的信息。它位于设备上。
关于PCI I / O,PCI内存,您可以将内存空间放入两者中。这取决于您的S / W方案。如果您的pci设备要访问其主机内存数据,则可以将内存空间放入PCI控制器中。 (例如,网络驱动程序中的tx数据包缓冲区。)