HOST主桥的完结因处理器体系而异。PowerPC处理器和x86处理器的HOST主桥除了集成方法不同之外,其完结机制也有较大差异。可是这些HOST主桥所完结的最基本功用依然是别离存储器域与PCI总线域,完结PCI总线域到存储器域,存储器域到PCI总线域之间的数据传递,并办理PCI设备的装备空间。
上文从前屡次说到在一个处理器体系中,存在PCI总线域与存储器域,深化了解这两个域的区别是了解HOST主桥的关键所在。在一个处理器体系中,存储器域、PCI总线域与HOST主桥的联系如图2‑1所示。
上图所示的处理器体系由一个CPU,一个DRAM操控器和两个HOST主桥组成。在这个处理器体系中,包含CPU域、DRAM域、存储器域和PCI总线域地址空间。其间HOST主桥x和HOST主桥y别离办理PCI总线x域与PCI总线y域。PCI设备拜访存储器域时,也需求经过HOST主桥,并由HOST主桥进行PCI总线域到存储器域的地址转化;CPU拜访PCI设备时,相同需求经过HOST主桥进行存储器域到PCI总线域的地址转化。
假如HOST主桥支撑Peer-to-Peer传送机制,PCI总线x域上的设备能够与PCI总线y域上的设备直接通讯,如PCI设备x11能够直接与PCI设备y11通讯。为简化模型,在本书中,PCI总线仅运用32位地址空间。
2.1.1CPU域、DRAM域与存储器域
CPU域地址空间指CPU所能直接拜访的地址空间调集。在本书中,CPU、处理器与处理器体系的概念不同。如MPC8548处理器的内核是E500 V2[1],本书将这个处理器内核称为CPU;处理器由一个或许多个CPU、外部Cache、中止操控器和DRAM操控器组成;而处理器体系由一个或许多个处理器和外部设备组成。
在CPU域中有一个重要概念,即CPU域鸿沟,所谓CPU域鸿沟,即CPU所能操控的数据完好性鸿沟。CPU域的鸿沟由Memory Fence指令[2]的效果规模确认,CPU域鸿沟的区分对数据完好性(Data Consistency)非常重要。与CPU域相关的数据完好性知识较为杂乱,能够独立出版,因而本篇对数据完好性不做进一步介绍。笔者有方案再更新完PCIe总线部分的材料后,书体系结构的两方面内容,一个是Cache层次结构,一个是以Weakly Ordered Memory Modle为根底书写数据完好性。
严厉的讲CPU域仅在CPU内核中有用,CPU拜访主存储器时,首要将读写指令放入读写指令缓冲中,然后将这个指令发送到DRAM操控器或许HOST主桥。DRAM操控器或许HOST主桥将CPU地址转化为DRAM或许PCI总线地址,别离进入DRAM域或许PCI总线域后,再拜访相应的地址空间。
DRAM域地址空间指DRAM操控器所能拜访的地址空间调集。现在处理器体系的DRAM一般由DDR-SDRAM组成,有的书本也将这部分内存称为主存储器。在有些处理器体系中,DRAM操控器能够拜访的地址空间,并不能被处理器拜访,因而在这类处理器体系中,CPU域与DRAM域地址空间并不同等。
比方有些CPU能够支撑36位的物理地址,而有些DRAM操控器仅支撑32位的物理地址,此刻CPU域包含的地址空间大于DRAM域地址空间。可是这并不意味着DRAM域必定包含在CPU域中,在某些处理器体系中,CPU并不能拜访在DRAM域中的某些数据区域。而CPU域中除了包含DRAM域外,还包含外部设备空间。
在大都处理器体系中,DRAM域空间是CPU域空间的一部分,可是也有破例。比方显卡操控器可能会借用一部分主存储器空间,这些被借用的空间不能被CPU拜访,而只能被DRAM操控器,更为精确地说是显卡经过DRAM操控器拜访,因而这段空间不归于CPU域,严厉地讲,这段空间归于外部设备域。
本书运用存储器域总称CPU域与DRAM域。存储器域包含CPU内部的通用寄存器,存储器映像寻址的寄存器,主存储器空间和外部设备空间。在Intel的x86处理器体系中,外部设备空间与PCI总线域地址空间等效,由于在x86处理器体系中,运用PCI总线统一办理悉数外部设备。为简化起见,本书运用PCI总线域代替外部设备域。
值得注意的是,存储器域的外部设备空间,在PCI总线域中还有一个地址映射。当处理器拜访PCI设备时,首要拜访的是这个设备在存储器域上的PCI设备空间,之后HOST主桥将这个存储器域的PCI总线地址转化为PCI总线域的物理地址[3],然后再经过PCI总线业务拜访PCI总线域的地址空间。