概述
CPU可寻址的地址空间被称为线性地址空间,在MSDN上又被称为虚拟地址空间,在x86架构的32位处理器上是4GB,在64位处理器上则很大。实际DDR内存容量可能没有这么大,DDR被安排在线性地址空间中的一段区间,称为RAM地址空间或系统内存空间。对于独立显卡,是PCI设备,拥有独立的显存,这些显存由PCI设备配置空间中的BAR定位。显存会被安排到线性地址空间中的一段区间,称为显存空间,在设备管理器->显示适配器->显卡->属性->资源一栏中所看到的内存范围就是这里说的显存空间。
PCI设备的内存、I/O空间、配置空间均位于PCI设备本身,其中配置空间只能通过I/O端口来访问,PCI设备的配置空间正是为了支持PnP而设计的,计算机开机启动时,BIOS会枚举PCI总线上的所有PCI设备,在线性地址空间中为PCI设备内存安排地址空间,将在线性地址空间中的内存基地址登记到PCI设备的配置空间中,I/O空间也是如此。
驱动程序访问物理内存(包括设备内存)需要先通过MmMapIoSpace函数将物理内存转换为虚拟内存后再使用READ_REGISTER_XXX和WRITE_REGISTER_XXX类函数访问。
核显由于不是PCI设备,故不存在配置空间,核显会占用DDR主存,系统自有机制将DDR的一段内存作为显存使用。
最后
以上就是健忘手链为你收集整理的PCI设备内存、I/O空间、配置空间的全部内容,希望文章能够帮你解决PCI设备内存、I/O空间、配置空间所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复