我有个关于PCI的问题。PCI有三个地址空间: PCI I/O、PCI内存和PCI配置空间。它们的物理位置在哪里?在PCI控制器里?还是在设备里?他们中有谁是系统RAM的一部分?
发布于 2014-12-12 14:04:56
对于物理插入式PCI卡,它总是在设备上。设备必须宣布它是什么(配置空间),并保持本地状态独立于主机(I/O和内存空间)。
然而,PCI常常被滥用为配置机制,而且有许多设备实际上并不是通过PCI接口进行对话,而是只使用假的PCI接口-- PCI快速卡总是以PCI设备的形式出现,但它们之间的33 the总线神奇地消失了。
如今,随着芯片组集成了几乎所有的东西,大多数PCI设备都是假的。然而,他们仍然坚持PCI所规定的一切。例如,northbridge上的嵌入式图形将使用系统RAM,但是对于图形设备使用的所有ram,计算机将告诉操作系统不存在相同的ram。
就操作系统所能看到的而言,设备总是带有自己的内存。
发布于 2019-02-08 09:39:21
我想对此补充一些意见。
所有的PCI设备都有一个作为BAR0的PCI配置空间。您可以在空间中找到有关PCI设备的信息。它位于设备上。
而对于PCI I/O,PCI内存,您可以将内存空间放在两者之间。这取决于你们的S/W计划。如果您的pci设备希望访问它们的主机内存数据,则可以将内存空间放入PCI控制器。(网络驱动程序中的ex、tx数据包缓冲区)。
https://stackoverflow.com/questions/27410560
复制相似问题