PCI总线的基础知识快速学习(二)(适合新手)

本文深入介绍了PCI总线的基础知识,包括系统地址空间与PCI地址空间的映射、PCI配置空间的详细结构,如设备识别、基地址寄存器、中断寄存器等,并阐述了PCI的三种数据通信模式:程序IO、DMA和点对点同级传输。这些内容为学习PCIe协议打下了坚实基础。
摘要由CSDN通过智能技术生成

一、系统地址空间、PCI的地址空间和PCI的配置空间之间的映射关系

从上一篇我们知道PCI有32位或64位的地址/数据复用线,所以对于一个32位地址线的PCI主设备,如果它发起存储器访问,它可以寻址到的最大地址是2^{32}B=2^{10}B*2^{10}*2^{10}*2^{2}=1KB*1024*1024*4=4GB,对于64位,它可以寻址到的最大地址是16EB(1EB=2^{60}B),这两个数据也就是PCI总线上的所有设备内部拥有的最大存储空间(如果发起IO访问,也是这么大)。一般情况下32位地址就足够使用,所以下面的讨论全部是针对32位PCI总线进行的。

学过计算机组成原理的朋友应该知道,老式的x86CPU的计算机内部存在着两个独立的物理地址空间,一个叫做存储器空间,一个叫做IO空间,这里我把它们统称为系统地址空间。从上一篇PCI的文章中,我们知道PCI总线上的事务有存储器读和存储器写,也有IO读和IO写,也就是说对于一个PCI设备来说,它既可以访问PCI的存储器空间,也可以访问PCI的IO空间,这里我把PCI的这两个空间统称为PCI的地址空间(这两个空间都最大支持4GB)。实际上,系统的地址空间和PCI的地址空间是统一编址的,也就是说,对于一个老式的x86CPU的计算机,系统的存储器空间和PCI的存储器空间可以看作是一个空间,IO空间也同理。对于前端总线是32位的计算机系统,系统的存储器空间大小也是4GB,因为它和PCI的存储器空间统一编址,所以PCI的存储器空间其实并没有4GB。对于IO空间,理论上PCI的IO空间可以支持4GB,但是由于x86CPU只支持16位的IO地址线,即64KB的IO地址空间

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值