的一个重要作用就是将存储器访问的存储器地址转换成PCI 总线地址。
CPU 域地址空间是指 CPU 所能直接访问的地址空间集合。
DRAM 域地址空间是指 DRAM 控制器所能访问的地址空间集合,又称为主主存储器域。
存储器域是 CPU 域和 DRAM 域的集合。存储器域包括 CPU 内部的通用寄存器、存储器
映射寻址的寄存器、主存储器空间和外部设备空间。在Intel 的 x86 处理系统中,外部设备
空间与 PCI 总线域地址空间等效。因为在 x86 处理器系统中,使用 PCI 总线同一管理全部外
部设备。
值得注意的是,存储器域的外部设备空间,在PCI 总线域中还有一个地址映射。当处理
器访问 PCI 设备时,首先访问的是这个设备在存储器域上的PCI 设备空间,之后 HOST 主桥
将这个存储器域的 PCI 总线地址转换成 PCI 总线域的物理地址,然后通过 PCI 总线事务访问
PCI 总线域的地址空间。
PCI 总线具有很强的扩展性。在 PCI 总线中,HOST 主桥可以直接推出一条 PCI 总线,这
条总线也是该 HOST 主桥管理的第一条 PCI 总线,该总线还可以通过 PCI 桥扩展一系列 PCI
总线,并以 HOST 主桥作为根节点,形成 1 棵 PCI 总线树。这些 PCI 总线都可以连接 PCI 设
备,但是一棵 PCI 设备树上,最多只能挂接 256 个 PCI 设备(包括 PCI 桥)。
3) 动态配置机制
PCI 设备使用的地址可以根据需要由系统软件动态分配。PCI 总线使用这种方式合理地
解决设备间的地址冲突,从而实现了“即插即用”功能。每一个PCI 设备都有独立的配置空
间,在配置空间中包含该设备在 PCI 总线中使用的基地址即 BAR 地址,从而保证每一个 PCI
设备使用的物理地址并不相同。PCI 桥的配置空间中包含有其下 PCI 子树所能使用的地址范
围。
x86 系统的工作流程是:主板上的 BIOS 程序会扫描 PCI/PCIE 设备,读取其 BAR 空间的
大小,动态地为 PCI/PCIE 设备分配地址空间。在调试过中发现,假如将 BAR 空间设置成 2G,
x86 系统会报 no bootable device 的错误,原因应该是 BIOS 给 PCIE 设备分配了 2G 的地址空
间,暂用了硬盘的地址空间,导致无法加载操作系统。
PCI 总线与之前的局部总线相比,极大提高了数据传送带宽,32 位/33MHz 的 PCI 总线
可以提供132MB/s的峰值带宽,而64位/66MHz的PCI总线可以提供的峰值带宽为532MB/s。
虽然 PCI 总线所能提供的峰值带宽远不能和 PCIe 总线相比,但是与之前的局部总线 ISA、EISA
和 MCA 总线相比,仍然具有极大的优势。
ISA 总线的最高主频为 8MHz,位宽为16,其峰值带宽为16MB/s;EISA 总线的最高主频
为,位宽为 32,其峰值带宽为 33MB/s;而 MCA 总线的最高主频为 10MHz,最高位宽为 32,
其峰值带宽为 40MB/s。PCI 总线提供的峰值带宽远高于这些总线。
评论0
最新资源