PCI外设配置空间,内存地址空间和I/O空间
每个PCI外设都有自己的配置空间,可以通过0XCF8和0XCFC端口访问?这两个端口好像是通过北桥来实现的?
问题1:这两个端口位于哪?设备上还是?
在PCI外设的这些配置空间里面有一些基地址寄存器,里面存储了一些设备映射到内存或者I/O的基地址?
问题2:这些基地址在什么地方,映射到内存和I/O操作方式有什么不同?貌似都是32位的?
问题3:CPU通过这些基地址和外设通信,是怎么实现的?
问题4:这些地址是物理地址还是虚拟地址?
问题3:在进程通信里面共享内存方式里面将开辟的内存映射到进程的空间是什么原理?怎么映射?
求!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
难道我描述的有问题吗?
大家哪个问题看不懂的指出,我修改下,谢谢!!
端口在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