PCI/PCIE总线的宏观理解

1、pcie总线协议实现的效果

(1)像访问内存一样去访问外设;

(2)当建立好CPU地址空间到PCI/PCIE地址空间的映射关系后,程序访问CPU地址空间就可以达到访问PCI/PCIE地址空间的效果;

2、芯片地址空间

(1)32位的CPU寻址范围是4G,64位的CPU寻址范围是2的64次方,地址空间是有限的,也属于一种资源;

(2)属于CPU地址空间的地址,CPU可以直接访问。比如上面截取的地址空间都属于CPU地址空间,所以CPU可以直接通过读写地址的方式去访问数据;

(3)但是有的地址空间是和CPU地址空间独立的,比如32位的CPU寻址范围是4G,外接了4G的eMMC,那CPU地址空间的0x100地址和eMMC地址空间的0x100地址是独立的。CPU想要访问eMMC地址空间的0x100地址,需要把0x100这个地址传给eMMC控制器,由eMMC控制器去访问eMMC的0x100地址处数据;

3、PCI/PCIE设备工作的流程

(1)根设备扫描连接在PCI/PCIE总线上的每个设备,识别每个设备是普通PCI/PCIE设备还是桥;

(2)如果是普通设备则读取ID、配置信息,为设备分配资源;

(3)如果是桥设备,则还需要分配总线号,桥再去扫描下一级总线上挂载的设备;

(4)当所以设备都扫描完毕后,每个设备都分配了地址空间,以后在总线上就用地址来访问设备;

4、CPU地址和PCI/PCIE地址的转换

(1)PCI/PCIE地址 = CPU地址 + 偏移量;

(2)偏移量是在芯片的PCI/PCIE控制器驱动里指定的;

5、类比

(1)PCI/PCIE地址空间和CPU地址空间的转换,类似于虚拟地址和物理地址的转换;

(2)虚拟地址和物理地址有对应关系,但是对于虚拟地址之上编程的程序员是不用感知这个转换的,只有维护MMU的程序员才会关注;

(3)PCI/PCIE地址空间和CPU地址空间的转换,是CPU的PCI/CPIE控制器驱动进行的,如果不是维护该驱动的程序员,对此也不用太关心;

6、参考资料

以上笔记源自韦东山老师的视频课程,以及个人理解。

相关推荐
ACP广源盛139246256739 天前
选型评估笔记:面向轻量化边缘 IO 扩展的 PCIe4.0 交换方案 IX8012@ACP
笔记·硬件架构·pcie·hdmi·国产芯片
hi冻鱼11 天前
PCIe + DDR架构(一):实测——块长从4 KiB 换 1 MiB,带宽从133 MB/s 涨到 3179 MB/s
性能测试·fpga·pcie·mig·xdma·1024程序员节·ddr3
ACP广源盛1392462567312 天前
PCIe Gen3 交换芯片选型笔记:多路扩展方案 IX7024@ACP 评估
笔记·硬件架构·pcie·国产芯片
ACP广源盛1392462567313 天前
PCIe Gen3 交换芯片选型笔记:中小通道扩展方案 IX7012@ACP 评估
笔记·硬件架构·硬件工程·pcie·国产芯片
工作10年+,存储芯片行业22 天前
U.2 企业盘 × PCIe 4.0 / 5.0:主控与验证
ssd·nvme·存储·pcie·主控·nand·u.2
ACP广源盛1392462567322 天前
硬件选型笔记:国产 PCIe Gen2.1 交换芯片 IX6024@ACP,工控与存量设备国产化改造方案评估
笔记·硬件架构·硬件工程·pcie·国产芯片
ACP广源盛1392462567324 天前
硬件选型笔记|国产 PCIe4.0 交换芯片 IX8024@ACP,AI 边缘节点本地存储扩展方案探讨
人工智能·硬件架构·硬件工程·pcie·国产芯片
ACP广源盛1392462567324 天前
硬件选型笔记|国产 PCIe4.0 交换芯片 IX8012@ACP,边缘 AI 设备 IO 扩展方案探讨
人工智能·笔记·硬件架构·pcie·国产芯片
工作10年+,存储芯片行业25 天前
企业级 SSD 性能评测:稳态、尾延迟与 fio 实测命令
ssd·nvme·存储·pcie·nand·fio·iops
工作10年+,存储芯片行业25 天前
企业级 SSD 耐久度评测(JESD218 / JESD219 + FIO)
网络·ssd·nvme·存储·pcie·nand·fio