PCI学习 之 存储器域(CPU域、DRAM域)与PCI总线域

根据《pcie体系结构导读》一书的描述: 

CPU域地址空间指CPU的core能直接访问到的地址空间集合;DRAM域地址空间指DRAM控制器所能访问的地址空间集合,DRAM一般指DDR-SDRAM。有些处理器系统中DRAM控制器能访问的地址空间并不能被CPU core访问,因此在此类处理器系统中,CPU域与DRAM域地址空间并不相等。

CPU core访问DRAM时,DRAM控制器会将CPU域地址转换为DRAM域地址;

CPU core访问PCI设备时,HOST主桥会将CPU域地址转换为PCIE域地址;

CPU域包含了DRAM域,但不一定包含了DRAM域的所有空间,对于这类CPU系统,CPU并不能访问到DRAM域中的某些区域。但多数CPU系统中DRAM域是CPU域的一部分,CPU能够访问到DRAM域的所有区域。

存储器域地址空间指CPU core能访问的所有地址空间,如下图所示的FT2000/4地址分配。

PCI总线域:个人理解应该是PCI事务报文中的地址地段,不一定正确,学习中。

存储器域PCI总线域彼此独立,通过HOST主桥进行数据交换。HOST主桥是联系存储器域与PCI总线域的桥梁,是PCI总线域实际的管理者。

CPU所能访问的PCI总线地址一定在存储器域中具有地址映射;而PCI设备能访问的存储器域的地址也一定在PCI总线域中具有地址映射。存储器域与PCI总线域的转换关系由HOST主桥统一管理

 

 有些处理器提供了寄存器进行这种地址映射,如PowerPC的inbound和outbound寄存器组,(PowerPC的RapidIO总线域地址映射也是通过inbound和outbound寄存器组来管理)。有些处理器没有提供类似寄存器,但存储器域与PCI总线域的转换始终存在。

(1)CPU -> PCI设备:处理器,PCI设备所使用的地址空间保存在各自的PCI配置寄存器中,及BAR寄存器中。这些PCI总线地址空间需要在初始化时映射成存储器域的存储器地址空间,之后处理器才能访问这些地址。在PowerPC中此映射关系保存在outbound寄存器组中;在x86及arm中如何保存该映射关系待学习确认(TUDO)

(2)PCI设备 -> CPU:PCI设备只能访问进行了存储器域与PCI总线域映射的空间。在PowerPC中此映射关系保存在inbound寄存器组中;在x86及arm中如何保存该映射关系待学习确认(TUDO)

(3)PCI设备 -> PCI设备:如果HOST主桥不支持peer-to-peer传送方式,那么在不同PCI总线域中的PCI设备间不能直接进行数据交换。不同PCI总线域的相同地址映射的存储器域地址可能不相同。

参考文档:《PCI+EXPRESS体系结构导读.pdf》

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值