2

可能是一个超级基本的问题,但是我正在阅读:http ://www.tldp.org/LDP/tlk/dd/pci.html我很好奇,当我写入 PCI 内存空间地址时,我到底是什么写给?

我是否正在写入 PCI 设备上的内存模块?我系统内存的特殊子部分?连接到主板上的内存是专门为使用 PCI 总线而设计的吗?它是否完全依赖于架构并故意含糊其辞?

4

1 回答 1

2

所以发生的事情是有一个叫做“内存控制器”的东西,它位于 CPU 和 RAM 之间。每当您寻址内存中的任何内容时,它都会通过内存控制器。

当系统启动时,通常与 PCI 根集线器集成的内存控制器(谷歌搜索“英特尔 GMCH”以获取有关英特尔版本的更多信息)会扫描 PCI 总线以查找所有设备及其功能。然后它为所有 PCI 内存空间留出“虚拟”地址。

当您写入这些虚拟地址时,内存控制器知道将该地址范围内的任何内容转发到 PCI 设备而不是主内存(或其他设备)。

于 2013-10-25T01:05:22.493 回答