节详细介-赛灵思zynq7020芯片技术手册
只有在 Inbound 寄存器组映射的存储器空间才能被 PCI 设备访问,本篇将在第2.2节详细介 绍 PowerPC 处理器的这组寄存器。 由上所述,在一个处理器系统中,并不是所有存储器空间都可以被 PCI 设备访问,只有 在 PCI 总线域中有映像的存储器空间才能被 PCI 设备访问。经过 HOST 主桥映射的存储器, 具有两个“地址”,一个是在存储器域的地址,一个是在 PCI 总线域的 PCI 总线地址。当处 理器访问这段存储器空间时,使用存储器地址;而 PCI 设备访问这段内存时,使用 PCI 总线 地址。在多数处理器系统中,存储器地址与 PCI 总线地址相同,但是系统程序员需要正确理 解这两个地址的区别。 下文以 PCI 设备11向主存储器写数据为例,说明 PCI 设备如何进行 DMA 写操作。 (1) 首先 PCI 设备11将存储器写请求发向 PCI 总线 x1,注意这个写请求使用的地址 是 PCI 总线域的地址。 (2) PCI 总线 x1上的所有设备监听这个请求,因为 PCI 设备11是向处理器的存储器 写数据,所以 PCI 总线 x1上的 PCI Agent 设备都不会接收这个数据请求。 (3) PCI 桥 x1发现当前总线事务使用的 PCI 总线地址不是其下游设备使用的 PCI 总 线地址,则接收这个数据请求,有关 PCI 桥的 Secondary 总线接收数据的过程见第 3.2.1节。此时 PCI 桥 x1将结束来自 PCI 设备11的 Posted 存储器写请求,并将这 个数据请求推到上游 PCI 总线上,即 PCI 总线 x0上。 (4) PCI 总线 x0上的所有 PCI 设备包括 HOST 主桥将监听这个请求。PCI 总线 x0上 的 PCI Agent 设备也不会接收这个数据请求,此时这个数据请求将由 HOST 主桥 x 接收,并结束 PCI 桥 x1的 Posted 存储器写请求。 (5) HOST 主桥 x发现这个数据请求发向存储器,则将来自 PCI 总线 x0的 PCI 总线 地址转换为存储器地址,之后通过存储器控制器将数据写入存储器,完成 PCI 设备 的 DMA 写操作。 PCI 设备进行 DMA 读过程与 DMA 写过程较为类似。不过 PCI 总线的存储器读总线事务只 能使用 Non-Posted 总线事务,其过程如下。 (1) 首先 PCI 设备11将存储器读请求发向 PCI 总线 x1。 (2) PCI 总线 x1上的所有设备监听这个请求,因为 PCI 设备11是从存储器中读取数 据,所以 PCI 总线 x1上的设备,如 PCI 设备12,不会接收这个数据请求。PCI 桥 x1发现下游 PCI 总线没有设备接收这个数据请求,则接收这个数据请求,并将这个 数据请求推到上游 PCI 总线上,即 PCI 总线 x0上。 (3) PCI 总线 x0上的设备将监听这个请求。PCI 总线 x0上的设备也不会接收这个数 据请求,最后这个数据请求将由 HOST 主桥 x 接收。 (4) HOST 主桥 x发现这个数据请求是发向主存储器,则将来自 PCI 总线 x0的 PCI 总线地址转换为存储器地址,之后通过存储器控制器将数据读出,并转发到 HOST 主桥 x。 (5) HOST 主桥 x将数据经由 PCI 桥 x1传递到 PCI 设备11,PCI 设备11接收到这个数 据后结束 DMA 读。
- 粉丝: 16
- 资源: 4200
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助