首页 理论教育PCIe存储空间组成:Montevina平台概览

PCIe存储空间组成:Montevina平台概览

【摘要】:由上文所述,在Montevina平台中包含一个Mobile处理器、MCH、ICH和一个无线网卡适配器组成。Montevina平台使用的地址空间由存储器域地址空间和PCI总线域地址空间组成。在In-tel的x86处理器系统中,包括Montevina平台,所有的外部设备都通过PCI总线进行管理。Montivina平台除了具有存储器域、PCI总线域之外,还存在一个DRAM域。图5-2 Montevina平台的CPU域与DRAM域在一个多核处理器系统中,不同的CPU所能访问的地址空间也不一定相同,其中每一个CPU都对应一个存储器域。

由上文所述,在Montevina平台中包含一个Mobile处理器、MCH、ICH和一个无线网卡适配器组成。在MCH和ICH中具有许多组成部件,本节仅介绍MCH和ICH中与PCI总线直接相关的部分内容。

Montevina平台使用的地址空间由存储器域地址空间和PCI总线域地址空间组成。在In-tel的x86处理器系统中,包括Montevina平台,所有的外部设备都通过PCI总线进行管理。x86处理器平台使用这种方法便于对外部设备统一管理,但是这种方法也带来了一些弊端。因为使用这种方法时,PCI总线域空间与存储器域空间的边界划分并不明晰。

Montivina平台除了具有存储器域、PCI总线域之外,还存在一个DRAM域。所谓DRAM域是指DRAM控制器所能访问的地址空间,即从DRAM控制器的角度来看,DRAM空间的拓扑结构。DRAM域中包含的地址空间,通俗地讲是指主存储器地址空间,即DRAM控制器能够访问的地址空间。

在Montevina平台中,DRAM域地址空间并不能与存储器域地址空间完全对应。当处理器系统支持的内存超过4GB时,DRAM域的部分空间需要使用Reclaim机制才能访问,此外在DRAM域空间中,有些地址并不能被处理器访问。比如显卡控制器借用了一部分DRAM空间,这部分空间可以被显卡控制器访问,但是不能被CPU访问。x86处理器由于考虑向前兼容,一个原本完整的DRAM域被划分得支离破碎。在Intel的x86处理器中,许多“不合理”都是因为“向前兼容”导致的。

在x86处理器系统中,存储器域由CPU能够访问的地址空间组成,包括DRAM域地址空间的一部分,一些使用存储器映像寻址的寄存器[16]和PCI总线域地址空间在存储器域中的映像。

而DRAM域由DRAM控制器所能寻址的空间组成。如图5-2所示,在Montevina平台中,存储器域与DRAM域的所包含的部分空间,其地址相等,比如Legacy Address Range、TSEG(Top of Memory Segment)和其他一些DRAM空间。这里的地址相等指在存储器域和DRAM域中的地址相同,但是这两个地址的含义并不相同。

978-7-111-29822-9-Part02-41.jpg(www.chuimin.cn)

图5-2 Montevina平台的CPU域与DRAM域

在一个多核处理器系统中,不同的CPU所能访问的地址空间也不一定相同,其中每一个CPU都对应一个存储器域。在这些存储器域中,有些空间是所有CPU共享的,有些空间是某个CPU的私有空间。在多核处理器中,存储器域和DRAM域地址空间的划分更为复杂,本书对此不做进一步说明。

如图5-2所示,x86处理器将PCI总线域和存储器域进行混合编址。但是在图5-2中的PCI总线地址仅是在存储器域中的地址,即PCI总线地址在存储器域地址空间的映像。值得注意的是,这个PCI总线地址和PCI总线域的地址没有直接联系,当处理器访问PCI设备时,首先使用在存储器域的PCI总线地址,RC会将存储器域的地址转换为PCI总线域的地址,并使用PCIe总线事务访问相应的设备。

x86处理器和PowerPC处理器进行存储器域到PCI总线域的映射方法不同。PowerPC处理器使用Inbound/Outbound窗口显式地分离存储器域与PCI总线域。而x86处理器内部并没有设置这类寄存器显式分离这些域空间。但是x86处理器仍然区分存储器域和PCI总线域,虽然PCI设备使用的地址在存储器域和PCI总线域中相同。

x86处理器采用的这种PCI总线域与其他处理器有较大的不同,x86处理器采用这种设计方法可能考虑了向前兼容。采用这种结构,存储器域和PCI总线域之间的界限并不明晰,但是有利于外部设备的统一管理。