PCI BAR内存地址

时间:2014-04-29 23:14:29

标签: memory computer-architecture bios pci

快速提问,我正在阅读有关PCI的OSDev Wiki页面,并说明了以下内容 -

"基址寄存器(或BAR)可用于保存设备使用的存储器地址,或端口地址的偏移量。通常,内存地址BAR需要位于物理RAM中,而I / O空间BAR可以驻留在任何内存地址(甚至超出物理内存)。"

我不知道内存地址BAR需要位于物理内存中吗? MMIO的重点在于它被分配了一个内存地址,以便它被路由到设备而不是物理RAM。它需要位于物理RAM中是什么意思?

它不仅仅是3GB - 4GB地址空间之间的地址,无论安装了多少物理RAM?

这是OSDev网站上的错误还是我误解了?

link - About halfway down, under the heading Base Address Registers

感谢。

1 个答案:

答案 0 :(得分:3)

OSDev网站还可以。它们从PCI设备角度描述内存/ IO BARS,而不是从主机角度描述。那么OSDev所说的内存BAR可以(但不一定是)映射到PCI设备上的物理RAM。虽然IO BAR通常是其他东西(寄存器,FIFO,等等)。

请注意,不鼓励使用IO BAR。最好只使用内存BAR。通常,您将有一个小内存BAR,它将对所有寄存器进行分组。其他BAR将暴露PCI设备的RAM。