《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(2)

2024-01-02 11:31:45

接前一篇文章:《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(1)

2.1 存储器域与PCI总线域

2.1.1 CPU域、DRAM域与存储器域

CPU域地址空间指CPU所能直接访问的地址空间集合。在本书中,CPU、处理器与处理器系统的概念不同。如MPC8548处理器的内核是E500 V2,本书将这个处理器内核称为CPU;处理器由一个或多个CPU、外部Cache、终端控制器和DRAM控制器组成,而处理器系统由一个或者多个处理器和外部设备组成。

在CPU域中有一个概念,即CPU域边界。所谓CPU域边界,即CPU所能控制的数据完整性边界CPU域的边界由Memory Fence指令的作用范围确定,CPU域边界的划分对数据完整性(Data Consistency)非常重要。与CPU域相关的数据完整性知识较为复杂,可以独立成书,因此本书对数据完整性不做进一步介绍。

严格地讲,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总线域的物理地址(PCI总线域只含有物理地址,因此上下文将直接使用PCI总线地址,而不使用PCI总线物理地址),然后通过PCI总线事务访问PCI总线域的地址空间。

更多内容请看下回。

文章来源:https://blog.csdn.net/phmatthaus/article/details/135323613
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。