PCI设备内存、I/O空间、配置空间

本文介绍了CPU的线性地址空间,包括32位和64位处理器上的差异,以及DDR内存如何映射到这个空间。同时,阐述了PCI设备如独立显卡的内存、I/O空间和配置空间的管理,特别是显存的分配和在系统资源中的查看方式。此外,还提到了核显如何占用主内存作为显存,并讨论了驱动程序访问物理内存的过程。
摘要由CSDN通过智能技术生成

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的一段内存作为显存使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值