duwei211 发表于 2011-06-15 22:18

PCI外设配置空间,内存地址空间和I/O空间

每个PCI外设都有自己的配置空间,可以通过0XCF8和0XCFC端口访问?这两个端口好像是通过北桥来实现的?

问题1:这两个端口位于哪?设备上还是?

在PCI外设的这些配置空间里面有一些基地址寄存器,里面存储了一些设备映射到内存或者I/O的基地址?

问题2:这些基地址在什么地方,映射到内存和I/O操作方式有什么不同?貌似都是32位的?

问题3:CPU通过这些基地址和外设通信,是怎么实现的?

问题4:这些地址是物理地址还是虚拟地址?

问题3:在进程通信里面共享内存方式里面将开辟的内存映射到进程的空间是什么原理?怎么映射?


求!!!

duwei211 发表于 2011-06-15 23:49

难道我描述的有问题吗?
大家哪个问题看不懂的指出,我修改下,谢谢!!

liuiang 发表于 2011-06-17 08:35

端口在IO空间上,一条访问IO空间的汇编指令用以访问这两个端口。
#1,端口是IO空间上的,具体寄存器要看具体处理器的微体系结构,一般在北桥上,处理器发出IO访问时序,出发北桥对应IO空间中的这两个寄存器。
#2,基地址寄存器是BIOS或操作系统配置的,PCI上电枚举的过程会分配空间,然后配置基地址寄存器。
#3,有了基地址,然后在基地址上加偏移量,然后再访问。
#4,是总线地址,某些体系下总线地址与物理地址相等,但必须明确,是总线地址而不是物理地址。
#5,这是关于MMU的问题,你研究操作系统内存管理相关的东西吧。

都是基本概念,建议你阅读:http://product.china-pub.com/50432
或者访问作者博客:http://blog.sina.com.cn/s/blog_6472c4cc0100p13v.html
页: [1]
查看完整版本: PCI外设配置空间,内存地址空间和I/O空间