系统地址空间,PCI地址空间

1.1 PCI 地址空间

PCI总线具有32位数据/地址复用总线,所以其存储地址空间为2的32次方=4GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址,以便于PCI总线统一寻址。每个PCI设备通过PCI寄存器中的基地址寄存器来指定映射的首地址。PCI地址空间对应于计算机系统结构中的PCI总线。

一个PCI设备占有PCI存储空间的一部分,PCI上存储器地址的译码是分散在设备上进行的,每一个设备负责它自己的译码,不需要中央译码后,从外部输入设备选择信号。

如果处理器具有32位的地址总线,其理论可寻址空间为2的32次方=4GB。但这并不意味着内存就可以4GB大小,其实XP系统最大内存大约为2GB,这与CPU访问系统中其它设备的存储器方式有关(比如CPU访问PCI总线上的存储器)。

计算机系统中在不同的物理位置上存在着不同设备,不同的设备又各自具有存储器,那么CPU如何访问这些存储器呢?CPU把系统中各个设备的存储空间映射到一个统一的存储空间上,称为系统存储空间共4GB,这样CPU就可以访问到所有的存储器。比如PCI存储器映射到从0xFFF80000开始的地址空间,显卡映射到0XFFF00000,再加上操作系统会占用一些空间,就只剩下不到2G能真正分配给物理内存了。(具体数值是为解释需要取的任意值,不代表真实情况)

系统地址空间对应于计算机系统结构中的前端总线(FSB)。

可见, PCI 地址空间( 4GB )无法完全映射到系统地址空间( 4GB )上,而且映射后所占的系统地址空间不能太大,否则会占用物理内存的系统地址空间,导致部份物理内存无法访问。